vue回到顶部监听滚动事件详解


Posted in Javascript onAugust 02, 2019

本文实例为大家分享了vue回到顶部监听滚动事件,供大家参考,具体内容如下

鼠标滚到到页面中间出现的工具浮框

<template>
<div class="tools">
<ul @mouseleave="mouseLeave()">
<li @click="toTop(step)">回到顶部</li>
<li @mouseover="mouseOver(1)">QQ</li>
<li @mouseover="mouseOver(2)">微信</li>
</ul>
<div v-if="showIndex === 1">玩QQ</div>
<div v-if="showIndex === 2">玩微信</div>
</div>
</template>
<script>
export default {
 name: 'FloatTools',
 props: {
 step: { //此数据是控制动画快慢的
  type: Number,
  default: 50
 }
 },
 data() {
 return {
  isActive: false,
  showIndex:0//默认显示下标
 }
 },
 methods: {
 toTop(i) {
  //参数i表示间隔的幅度大小,以此来控制速度 
  document.documentElement.scrollTop -= i;
  if (document.documentElement.scrollTop > 0) {
  var c = setTimeout(() => this.toTop(i), 16);
  } else {
  clearTimeout(c);
  }
 },
 handleScroll() {
  //获取滚动距顶部的距离,显示
  let scrollTop = window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop;
  if (scrollTop > 60) {
  this.isActive = true;
  } else {
  this.isActive = false;
  }
 },
 mouseOver(index) {
 //鼠标移到哪个工具上,对应内容显示出来
  this.showIndex = index;
 },
 mouseLeave(){
 //鼠标移出工具区域后1秒,内容区域消失 
  let timer = setTimeout(() => {
   this.showIndex = 0;
   clearTimeout(timer)
  }, 500);
 }
 },
 mounted: function () {
 window.addEventListener('scroll', this.handleScroll, true); // 监听(绑定)滚轮滚动事件
 },
 destroyed() {
 window.removeEventListener('scroll', this.handleScroll); //离开页面需要移除这个监听的事件
 }

}
</script>

如果遇到scroll一直打印是0,看是否样式写了overflow:auto去掉即可;或者给父级撑满屏幕;

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
在VS2008中使用jQuery智能感应的方法
Dec 30 Javascript
jQuery封装的tab选项卡插件分享
Jun 16 Javascript
极易被忽视的javascript面试题七问七答
Feb 15 Javascript
基于javascript实现样式清新图片轮播特效
Mar 30 Javascript
javascript弹出窗口中增加确定取消按钮
Jun 24 Javascript
jQuery的事件预绑定
Dec 05 Javascript
jQuery实现拖动剪裁图片作为头像
Dec 28 Javascript
Vue数据驱动模拟实现3
Jan 11 Javascript
jQuery插件zTree实现更新根节点中第i个节点名称的方法示例
Mar 08 Javascript
jQuery插件zTree实现的基本树与节点获取操作示例
Mar 08 Javascript
详解webpack引用jquery(第三方模块)的三种办法
Aug 21 jQuery
vue实现抖音时间转盘
Sep 08 Javascript
微信小程序npm引入vant-weapp的踩坑记录
Aug 01 #Javascript
vue3.0中的双向数据绑定方法及优缺点
Aug 01 #Javascript
微信小程序导入Vant报错VM292:1 thirdScriptError的解决方法
Aug 01 #Javascript
微信小程序使用Vant Weapp组件库的方法步骤
Aug 01 #Javascript
微信小程序中button去除默认的边框实例代码
Aug 01 #Javascript
vue-router两种模式区别及使用注意事项详解
Aug 01 #Javascript
jQuery中DOM常见操作实例小结
Aug 01 #jQuery
You might like
推荐php模板技术[转]
2007/01/04 PHP
php版小黄鸡simsimi聊天机器人接口分享
2014/01/26 PHP
PHP面向对象程序设计之接口用法
2014/08/20 PHP
ThinkPHP自动填充实现无限级分类的方法
2014/08/22 PHP
php curl获取https页面内容,不直接输出返回结果的设置方法
2019/01/15 PHP
不用MOUSEMOVE也能滑动啊
2007/05/23 Javascript
向fckeditor编辑器插入指定代码的方法
2007/05/25 Javascript
使用新的消息弹出框blackbirdjs
2008/10/16 Javascript
jquery定时滑出可最小化的底部提示层特效代码
2013/10/02 Javascript
基于jquery插件制作左右按钮与标题文字图片切换效果
2013/11/07 Javascript
ie浏览器使用js导出网页到excel并打印
2014/03/11 Javascript
禁用页面部分JavaScript不是全部而是部分
2014/09/03 Javascript
浅谈JavaScript的Polymer框架中的behaviors对象
2015/07/29 Javascript
jQuery实现的无限级下拉菜单功能示例
2016/09/12 Javascript
如何使用Vuex+Vue.js构建单页应用
2016/10/27 Javascript
基于JavaScript实现屏幕滚动效果
2017/01/18 Javascript
three.js绘制地球、飞机与轨迹的效果示例
2017/02/28 Javascript
ES6数组的扩展详解
2017/04/25 Javascript
Vue动态组件实例解析
2017/08/20 Javascript
Angular4表单验证代码详解
2017/09/03 Javascript
微信小程序将字符串生成二维码图片的操作方法
2018/07/17 Javascript
Layui table field初始化加载时进行隐藏的方法
2019/09/19 Javascript
vue 动态设置img的src地址无效,npm run build 后找不到文件的解决
2020/07/26 Javascript
python函数返回多个值的示例方法
2013/12/04 Python
利用Python学习RabbitMQ消息队列
2015/11/30 Python
详解Python之数据序列化(json、pickle、shelve)
2017/03/30 Python
Python实现复杂对象转JSON的方法示例
2017/06/22 Python
使用apidoc管理RESTful风格Flask项目接口文档方法
2018/02/07 Python
python3利用tcp实现文件夹远程传输
2018/07/28 Python
python TK库简单应用(实时显示子进程输出)
2019/10/29 Python
flask框架蓝图和子域名配置详解
2020/01/25 Python
俄罗斯在线手表和珠宝商店:AllTime
2019/09/28 全球购物
初三新学期计划书
2014/05/03 职场文书
心理咨询专业自荐信
2014/07/07 职场文书
行政文员实习自我鉴定范文
2014/09/14 职场文书
HTML中的表格元素介绍
2022/02/28 HTML / CSS