Vue实现固定定位图标滑动隐藏效果


Posted in Javascript onMay 30, 2019

写在前面

移动端页面,有时候会出现一些固定定位在底部图标,比如购物车等。这时候如果添加一个滑动页面,图标透明度变低,同时 移动到屏幕边进行隐藏,效果如下。

Vue实现固定定位图标滑动隐藏效果

所用原理

监听滑动事件,每次进行滑动时,触发动画,添加定时器,1.4s后显示该图标。具体代码如下:

<template>
  <section class="fixed-icon"
       :style="{ bottom: bottom + 'rem' }"
       :class="[ !transition ? 'fixed-transition' : '']"
       @click="event">
    <slot></slot>
  </section>
</template>
<script>
 export default {
  name: 'fixedIcon',
  props: {
   bottom: { // 改图标距离底部距离 单位 rem
    type: Number,
    default: 3,
   },
  },
  data () {
   return {
    transition: true, // 是否触发动画
    timer: null, // 定时器
   };
  },
  methods: {
   event() {
    this.$emit('clickEvent'); // 绑定点击图表时间
   },
   handleScroll () { // 每次滑动都会执行函数
    this.transition = false;
    if (this.timer) { // 判断是否已存在定时器
     clearTimeout(this.timer);
    }
    this.timer = setTimeout(() => { // 创建定时器,1.4s后图标回归原位置
     this.transition = true;
    }, 1400);
   }
  },
  mounted () {
   window.addEventListener('scroll', this.handleScroll); // 监听页面滑动
  }
 };
</script>

<style scoped lang="scss">
  /*@media only screen and (min-width:750px){html{font-size:20px}} */
  .fixed-icon{
    position: fixed;
    z-index: 1100;
    right: 1.7rem;
    display: flex;
    justify-content: center;
    align-items: center;
    height: 4.1rem;
    width: 4.1rem;
    border-radius: 50%;
    background-color: rgba(128, 128, 128, 0.8);
    transition: 0.7s ease-in-out;
  }
  .fixed-transition{
    right: -2.05rem;
    opacity: 0.4;
    transition: 1s ease-in-out;
  }
</style>

引入代码如下:

<template>
  <section class="content">
    <fixed-icon :bottom="3" @clickEvent="chat">
      <i class="icon-chat"></i>
    </fixed-icon>
  </section>
</template>

<script>
 import fixedIcon from './components/fixedIcon.vue';

 export default {
  name: 'test',
  components: {
   fixedIcon
  },
  data () {
   return {
   };
  },
  methods: {
   chat() { // 图标点击事件
    console.log('你好');
   },
  },
  mounted() {
   document.title = 'Vue制作固定定位图标滑动隐藏效果';
  },
 };
</script>

<style scoped lang="scss">
  .content{
    height: 200vh;
  }
  .icon-chat{
    width: 2rem;
    height: 1.9rem;
    background: url('http://pfpdwbdfy.bkt.clouddn.com/image/test/fixedIconTranstion/wechat.png') no-repeat;
    background-size: 2rem 1.9rem;
  }
</style>

github代码

总结

以上所述是小编给大家介绍的Vue实现固定定位图标滑动隐藏效果,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

Javascript 相关文章推荐
JavaScript 动态改变图片大小
Jun 11 Javascript
XmlUtils JS操作XML工具类
Oct 01 Javascript
js读取本地excel文档数据的代码
Nov 11 Javascript
javascript数字数组去重复项的实现代码
Dec 30 Javascript
基于jquery跨浏览器显示的file上传控件
Oct 24 Javascript
angularjs之$timeout指令详解
Jun 13 Javascript
vue中element组件样式修改无效的解决方法
Feb 03 Javascript
vue中的数据绑定原理的实现
Jul 02 Javascript
Node.js动手撸一个静态资源服务器的方法
Mar 09 Javascript
express框架中使用jwt实现验证的方法
Aug 25 Javascript
如何基于layui的laytpl实现数据绑定的示例代码
Apr 10 Javascript
微信小程序实现抖音播放效果的实例代码
Apr 11 Javascript
浅谈Vue的响应式原理
May 30 #Javascript
vue实现固定位置显示功能
May 30 #Javascript
搭建一个Koa后端项目脚手架的方法步骤
May 30 #Javascript
JS使用cookie保存用户登录信息操作示例
May 30 #Javascript
详解vue 动态加载并注册组件且通过 render动态创建该组件
May 30 #Javascript
Vue使用axios出现options请求方法
May 30 #Javascript
vue动态注册组件实例代码详解
May 30 #Javascript
You might like
认识并使用PHP超级全局变量
2010/01/26 PHP
采用memcache在web集群中实现session的同步会话
2014/07/05 PHP
Yii查询生成器(Query Builder)用法实例教程
2014/09/04 PHP
使用新浪微博API的OAuth认证发布微博实例
2015/03/27 PHP
PHP基于phpqrcode生成带LOGO图像的二维码实例
2015/07/10 PHP
详解Yii2 定制表单输入字段的标签和样式
2017/01/04 PHP
PHP+AJAX 投票器功能
2017/11/11 PHP
分享5个非常有用的Laravel Blade指令
2018/05/30 PHP
JavaScript实际应用:innerHTMl和确认提示的使用
2006/06/22 Javascript
jquery实现可拖动DIV自定义保存到数据的实例
2013/11/20 Javascript
js 处理数组重复元素示例代码
2013/12/27 Javascript
JavaScript将数组转换成CSV格式的方法
2015/03/19 Javascript
Javascript 制作图形验证码实例详解
2016/12/22 Javascript
常用的几个JQuery代码片段
2017/03/13 Javascript
Bootstrap 过渡效果Transition 模态框(Modal)
2017/03/17 Javascript
JS设计模式之策略模式概念与用法分析
2018/02/05 Javascript
JavaScript变速动画函数封装添加任意多个属性
2019/04/03 Javascript
Python模块结构与布局操作方法实例分析
2017/07/24 Python
使用python编写udp协议的ping程序方法
2018/04/22 Python
python 随机打乱 图片和对应的标签方法
2018/12/14 Python
python字典改变value值方法总结
2019/06/21 Python
python 中pyqt5 树节点点击实现多窗口切换问题
2019/07/04 Python
python实现多线程端口扫描
2019/08/31 Python
下载与当前Chrome对应的chromedriver.exe(用于python+selenium)
2020/01/14 Python
让Django的BooleanField支持字符串形式的输入方式
2020/05/20 Python
如何在keras中添加自己的优化器(如adam等)
2020/06/19 Python
英国婴儿及儿童产品商店:TigerParrot
2019/03/04 全球购物
英国健身仓库:Bodybuilding Warehouse
2019/03/06 全球购物
德国网上超市:myTime.de
2019/08/26 全球购物
某科技软件测试面试题
2013/05/19 面试题
给水排水工程专业毕业生推荐信
2013/10/28 职场文书
体育教育专业自荐信范文
2013/12/20 职场文书
工作保证书范文
2014/04/29 职场文书
关于读书的演讲稿
2014/05/07 职场文书
个人主要事迹材料
2014/08/26 职场文书
Django框架模板用法详解
2022/06/10 Python