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之大字符串的连接的StringBuffer 类
May 08 Javascript
js树形控件脚本代码
Jul 24 Javascript
jQuery live
May 15 Javascript
JQuery下关于$.Ready()的分析
Dec 13 Javascript
网页实时显示服务器时间和javscript自运行时钟
Jun 09 Javascript
jquery实现点击弹出可放大居中及关闭的对话框(附demo源码下载)
May 10 Javascript
Node.js 的模块知识汇总
Aug 16 Javascript
bootstrap-table组合表头的实现方法
Sep 07 Javascript
在element-ui的el-tree组件中用render函数生成el-button的实例代码
Nov 05 Javascript
vue项目启动出现cannot GET /服务错误的解决方法
Apr 26 Javascript
谈谈JavaScript中的垃圾回收机制
Sep 17 Javascript
JS实现可以用键盘方向键控制的动画
Dec 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
ajax缓存问题解决途径
2006/12/06 PHP
用PHP实现维护文件代码
2007/06/14 PHP
php下图片文字混合水印与缩略图实现代码
2009/12/11 PHP
Laravel框架学习笔记(一)环境搭建
2014/10/15 PHP
浅谈thinkphp5 instance 的简单实现
2017/07/30 PHP
PHP中使用CURL发送get/post请求上传图片批处理功能
2018/10/15 PHP
微信公众平台开发教程①获取用户Openid及个人信息图文详解
2019/04/10 PHP
Javascript拓展String方法小结
2013/07/08 Javascript
Google (Local) Search API的简单使用介绍
2013/11/28 Javascript
javascript中加号(+)操作符的一些神奇作用
2014/06/06 Javascript
实用框架(iframe)操作代码
2014/10/23 Javascript
JS响应鼠标点击实现两个滑块区间拖动效果
2015/10/26 Javascript
angularjs创建弹出框实现拖动效果
2020/08/25 Javascript
JS实现获取当前URL和来源URL的方法
2016/08/24 Javascript
jQuery插件echarts设置折线图中折线线条颜色和折线点颜色的方法
2017/03/03 Javascript
JS/jQuery实现超简单的Table表格添加,删除行功能示例
2019/07/31 jQuery
Layui Table js 模拟选中checkbox的例子
2019/09/03 Javascript
vue-video-player 断点续播的实现
2021/02/01 Vue.js
[48:48]完美世界DOTA2联赛PWL S3 Magama vs GXR 第一场 12.19
2020/12/24 DOTA
Win8.1下安装Python3.6提示0x80240017错误的解决方法
2018/07/31 Python
python判断all函数输出结果是否为true的方法
2020/12/03 Python
HTML5 Canvas中绘制矩形实例
2015/01/01 HTML / CSS
英国评分最高的女性剃须刀订阅盒:FFS Beauty
2018/01/25 全球购物
Unix/Linux开发面试题
2016/08/16 面试题
大学生实习自我鉴定
2013/12/11 职场文书
商务英语求职自荐信范文
2013/12/24 职场文书
西安交大自主招生自荐信
2014/01/27 职场文书
不打扫卫生检讨书
2014/02/12 职场文书
2014年关于两会精神的心得体会
2014/03/17 职场文书
教师考核评语
2014/04/28 职场文书
机械操作工岗位职责
2014/08/08 职场文书
2014年大学生工作总结
2014/11/20 职场文书
2015年爱国卫生月活动总结
2015/03/26 职场文书
2019预备党员转正申请书模板2篇!
2019/08/07 职场文书
CSS3 菱形拼图实现只旋转div 背景图片不旋转功能
2021/03/30 HTML / CSS
使用canvas实现雪花飘动效果的示例代码
2021/03/30 HTML / CSS