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的最佳方法分享
Oct 21 Javascript
关于二级域名下使用一级域名下的COOKIE的问题
Nov 07 Javascript
AngularJS中监视Scope变量以及外部调用Scope方法
Jan 23 Javascript
浅析JavaScript作用域链、执行上下文与闭包
Feb 01 Javascript
jQuery学习心得总结(必看篇)
Jun 10 Javascript
浅谈js的url解析函数封装
Jun 28 Javascript
JS button按钮实现submit按钮提交效果
Nov 01 Javascript
30分钟快速入门掌握ES6/ES2015的核心内容(上)
Apr 18 Javascript
jquery获取元素到屏幕四周可视距离的方法
Sep 05 jQuery
vue+element树组件 实现树懒加载的过程详解
Oct 21 Javascript
vue2.x 通过后端接口代理,获取qq音乐api的数据示例
Oct 30 Javascript
交互式可视化js库gojs使用介绍及技巧
Feb 18 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调用MySQL的存储过程的实现代码
2008/08/12 PHP
php中关于codeigniter的xmlrpc的类在进行数据交换时的类型问题
2011/07/03 PHP
kohana框架上传文件验证规则写法示例
2014/07/14 PHP
php可应用于面包屑导航的迭代寻找家谱树实现方法
2015/02/02 PHP
PHP中字符安全过滤函数使用小结
2015/02/25 PHP
php实现源代码加密的方法
2015/07/11 PHP
php实现购物车功能(上)
2020/07/23 PHP
php 使用curl模拟登录人人(校内)网的简单实例
2016/06/06 PHP
tp5.1 框架数据库高级查询技巧实例总结
2020/05/25 PHP
jQuery的live()方法对hover事件的处理示例
2014/02/27 Javascript
浅析JavaScript动画
2015/06/10 Javascript
jQuery实现按钮的点击 全选/反选 单选框/复选框 文本框 表单验证
2015/06/25 Javascript
checkbox批量选中,获取选中项的值的简单实例
2016/06/28 Javascript
一种基于浏览器的自动小票机打印实现方案(js版)
2016/07/26 Javascript
JS排序之选择排序详解
2017/04/08 Javascript
关于angular js_$watch监控属性和对象详解
2017/04/24 Javascript
JS使用tween.js动画库实现轮播图并且有切换功能
2018/07/17 Javascript
从零开始用electron手撸一个截屏工具的示例代码
2018/10/10 Javascript
浅谈Express.js解析Post数据类型的正确姿势
2019/05/30 Javascript
react国际化化插件react-i18n-auto使用详解
2020/03/31 Javascript
[10:18]2018DOTA2国际邀请赛寻真——Fnatic能否笑到最后?
2018/08/14 DOTA
Python网络爬虫与信息提取(实例讲解)
2017/08/29 Python
解决安装tensorflow遇到无法卸载numpy 1.8.0rc1的问题
2018/06/13 Python
浅谈Python编程中3个常用的数据结构和算法
2019/04/30 Python
浅谈Pytorch中的torch.gather函数的含义
2019/08/18 Python
python -v 报错问题的解决方法
2020/09/15 Python
全球高级音频和视频专家:HiDef Lifestyle
2019/08/02 全球购物
实习期自我鉴定
2013/10/11 职场文书
标准毕业生自荐信范文
2013/11/04 职场文书
教师评优事迹材料
2014/01/10 职场文书
数控技术学生的自我评价
2014/02/15 职场文书
自我鉴定标准格式
2014/03/19 职场文书
副校长个人对照检查材料思想汇报
2014/10/04 职场文书
2014年大学团支部工作总结
2014/12/02 职场文书
如何将numpy二维数组中的np.nan值替换为指定的值
2021/05/14 Python
《杜鹃的婚约》OP主题曲「凸凹」无字幕影像公开
2022/04/08 日漫