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 相关文章推荐
使用自定义setTimeout和setInterval使之可以传递参数和对象参数
Apr 24 Javascript
jqPlot jquery的页面图表绘制工具
Jul 25 Javascript
jQuery创建平滑的页面滚动(顶部或底部)
Feb 26 Javascript
node.js中的fs.unlink方法使用说明
Dec 15 Javascript
jQuery中append()方法用法实例
Dec 25 Javascript
javascript消除window.close()的提示窗口
May 20 Javascript
jQuery Chart图表制作组件Highcharts用法详解
Jun 01 Javascript
JavaScript类的写法
Sep 17 Javascript
Angular2下使用pdf插件的方法详解
Apr 29 Javascript
详解express与koa中间件模式对比
Aug 07 Javascript
javascript中的offsetWidth、clientWidth、innerWidth及相关属性方法
May 14 Javascript
微信小程序input抖动问题的修复方法
Mar 03 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
一些花式咖啡的配方
2021/03/03 冲泡冲煮
php读取本地文件常用函数(fopen与file_get_contents)
2013/09/09 PHP
wordpress安装过程中遇到中文乱码的处理方法
2015/04/21 PHP
Thinkphp模板标签if和eq的区别和比较实例分析
2015/07/01 PHP
Laravel监听数据库访问,打印SQL的例子
2019/10/24 PHP
PHP 实现链式操作
2021/03/09 PHP
JQuery 操作select标签实现代码
2010/05/14 Javascript
Javascript Boolean、Nnumber、String 强制类型转换的区别详细介绍
2012/12/13 Javascript
关于ExtJS4.1:快捷键支持的问题
2013/04/24 Javascript
JS/Jquery判断对象为空的方法
2015/06/11 Javascript
基于jquery实现智能表单验证操作
2016/05/09 Javascript
详解js中Json的语法与格式
2016/11/22 Javascript
Node.js的特点详解
2017/02/03 Javascript
JavaScript实现实时更新系统时间的实例代码
2017/04/04 Javascript
简单实现jQuery弹幕效果
2017/05/06 jQuery
微信小程序wx.request实现后台数据交互功能分析
2017/11/25 Javascript
基于Koa2写个脚手架模拟接口服务的方法
2018/11/27 Javascript
vue中使用GraphQL的实例代码
2019/11/04 Javascript
[01:48]完美圣典齐天大圣至宝宣传片
2016/12/17 DOTA
[27:08]完美世界DOTA2联赛PWL S2 SZ vs Rebirth 第二场 11.21
2020/11/23 DOTA
python3.5仿微软计算器程序
2020/03/30 Python
Flask框架Flask-Principal基本用法实例分析
2018/07/23 Python
jupyter 添加不同内核的操作
2021/02/06 Python
使用HTML和CSS实现的标签云效果(附demo)
2021/02/03 HTML / CSS
KIKO美国官网:意大利的平价彩妆品牌
2017/05/16 全球购物
名词解释WEB SERVICE,SOAP,UDDI,WSDL,JAXP,JAXM;JSWDL开发包的介绍。
2012/10/27 面试题
最新计算机专业自荐信
2013/10/16 职场文书
总经理职责范文
2013/11/08 职场文书
测绘工程专业个人自我评价
2013/12/01 职场文书
电话销售经理岗位职责
2013/12/07 职场文书
创先争优承诺书范文
2014/03/31 职场文书
暑期社会实践先进个人主要事迹
2014/05/22 职场文书
乡镇三严三实学习心得体会
2014/10/13 职场文书
学校德育工作总结2015
2015/05/11 职场文书
react如何快速设置文件路径别名
2021/04/28 Javascript
在虚拟机中安装windows server 2008的图文教程
2022/06/28 Servers