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 相关文章推荐
一个简单的JavaScript 日期计算算法
Sep 11 Javascript
location.href语句与火狐不兼容的问题
Jul 04 Javascript
JavaScript的事件绑定(方便不支持js的时候)
Oct 01 Javascript
JavaScript中创建对象和继承示例解读
Feb 12 Javascript
angularjs中的e2e测试实例
Dec 06 Javascript
BOOTSTRAP时间控件显示在模态框下面的bug修复
Feb 05 Javascript
jQuery实现的Div窗口震动效果实例
Aug 07 Javascript
简单的JS时钟实例讲解
Jan 13 Javascript
AngularJS中的API(接口)简单实现
Jul 28 Javascript
如何判断出一个js对象是否一个dom对象
Nov 24 Javascript
微信小程序开发之改变data中数组或对象的某一属性值
Jul 05 Javascript
微信小程序点击view动态添加样式过程解析
Jan 21 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
《星际争霸II》全新指挥官斯台特曼现已上线
2020/03/08 星际争霸
很实用的一个完整email发送程序
2006/10/09 PHP
PHP堆栈调试操作简单示例
2018/06/15 PHP
JavaScript asp.net 获取当前超链接中的文本
2009/04/14 Javascript
javascript下string.format函数补充
2010/08/24 Javascript
使用jquery插件实现图片延迟加载技术详细说明
2011/03/12 Javascript
JSONP 跨域访问代理API-yahooapis实现代码
2012/12/02 Javascript
js中不同的height, top的区别对比
2015/09/24 Javascript
javascript数据结构之双链表插入排序实例详解
2015/11/25 Javascript
基于javascript如何传递特殊字符
2015/11/30 Javascript
JS定义类的六种方式详解
2016/05/12 Javascript
浅谈jQuery双事件多重加载的问题
2016/10/05 Javascript
浅析上传头像示例及其注意事项
2016/12/14 Javascript
JS去除字符串中空格的方法
2017/02/14 Javascript
Vue中使用vee-validate表单验证的方法
2018/05/09 Javascript
vuex实现及简略解析(小结)
2019/03/01 Javascript
Vue CLI3基础学习之pages构建多页应用
2019/06/02 Javascript
微信小程序Echarts覆盖正常组件问题解决
2019/07/13 Javascript
js实现多个标题吸顶效果
2020/01/08 Javascript
vue+element使用动态加载路由方式实现三级菜单页面显示的操作
2020/08/04 Javascript
vue 数据操作相关总结
2020/12/17 Vue.js
[47:08]OG vs INfamous 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/17 DOTA
Python3如何解决字符编码问题详解
2017/04/23 Python
python matplotlib画图库学习绘制常用的图
2019/03/19 Python
Python中使用logging和traceback模块记录日志和跟踪异常
2019/04/09 Python
python 爬取学信网登录页面的例子
2019/08/13 Python
详解pandas中iloc, loc和ix的区别和联系
2020/03/09 Python
Java Spring项目国际化(i18n)详细方法与实例
2020/03/20 Python
Pandas直接读取sql脚本的方法
2021/01/21 Python
Saks Fifth Avenue澳洲/亚太地区:萨克斯第五大道精品百货店
2019/06/09 全球购物
GWT (Google Web Toolkit)有哪些主要的原件组成?
2015/06/08 面试题
网上祭先烈心得体会
2014/09/01 职场文书
2014年小学生迎国庆65周年演讲稿
2014/09/27 职场文书
三峡大坝导游词
2015/01/31 职场文书
同事打架检讨书
2015/05/06 职场文书
教师纪律作风整顿心得体会
2016/01/23 职场文书