vue进入页面时不在顶部,检测滚动返回顶部按钮问题及解决方法


Posted in Javascript onOctober 30, 2019

这里是本小白使用时遇到的问题及个人使用的方法可能并不完美。

1.监测浏览器滚动条滚动事件及滚动距离

dmounted() {  
   window.addEventListener("scroll", this.gundong);  
 },
 destroyed() {
   window.removeEventListener("scroll", this.gundong);
 },
 methods: {
  gundong() {   
   var dis = document.documentElement.scrollTop || window.pageYOffset || document.body.scrollTop;
   if(dis > 120){
    this.flag = true
   }else{
    this.flag = false
   }
  },

一般给window绑定监测事件就能获得window.pageYOffset滚动距离。

2.有些时候给body设置了{width:100%,height:100%},之后就需要将事件绑定在document.body,才能获得document.body.scrollTop滚动距离。

       2.1PC端IE/edge有滚动事件但通过document.body.scrollTop获取不到数值。

       2.2移动端火狐浏览器这样设置没问题也能获取document.body.scrollTop,百度浏览器和华为手机自带的浏览器获取不到。以下有解决方法

vue进入页面时不在顶部

  可以在main.js中写入以下

router.afterEach((to, from) => {
 window.scrollTo(0,0);
});

 或者用vue-router中的,需要浏览器支持history.pushState

scrollBehavior (to, from, savedPosition) {
 if (savedPosition) {
  return savedPosition
 } else {
  return { x: 0, y: 0 }
 }
}

如果因为需要设置了body{width:100%,height:100%}以上就不适用了

我是将vue最外层的#app-container也设置了{width:100%;height:100%},如果需要隐藏滚动条这时的样式,其他浏览器隐藏样式

html,body,#app-container{ width: 100%; height: 100%; overflow: scroll;}

html::-webkit-scrollbar, body::-webkit-scrollbar,#app-container::-webkit-scrollbar{width:0px;height:0px;}

此时可以在#app-contianer上绑定滚动事件并检测滚动距离

<div id="app-container" @scroll="scrollEvent($event)">

scrollEvent(e) {
  var dis = e.srcElement.scrollTop;
  console.log(dis)    
  if (dis > 150) {
   this.flag = true;
  } else {
   this.flag = false;
  }
 }

返回顶部按钮

backTop() {
  this.$el.scrollTop = 0;   
}

进入页面在顶部

var vm = new Vue({
 router,
 store,
 render: h => h(App)
}).$mount("#app");

router.afterEach((to, from) => {
 vm.$el.scrollTop = 0;
});

这样在PC端和移动端那几个浏览器都能正常运作。

总结

以上所述是小编给大家介绍的vue进入页面时不在顶部,检测滚动返回顶部按钮,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

Javascript 相关文章推荐
js 居中漂浮广告
Mar 21 Javascript
javascript实现上传图片并预览的效果实现代码
Apr 11 Javascript
JQuyer $.post 与 $.ajax 访问WCF ajax service 时的问题需要注意的地方
Sep 20 Javascript
js使用正则实现ReplaceAll全部替换的方法
Jul 18 Javascript
jQuery extend()详解及简单实例
May 06 jQuery
jquery ajax异步提交表单数据的方法
Oct 27 jQuery
极简主义法编写JavaScript类
Nov 02 Javascript
vue解决使用webpack打包后keep-alive不生效的方法
Sep 01 Javascript
Elementui表格组件+sortablejs实现行拖拽排序的示例代码
Aug 28 Javascript
jquery实现掷骰子小游戏
Oct 24 jQuery
vue限制输入框只能输入8位整数和2位小数的代码
Nov 06 Javascript
JavaScript动态生成表格的示例
Nov 02 Javascript
Vue中图片Src使用变量的方法
Oct 30 #Javascript
解决VUE双向绑定失效的问题
Oct 29 #Javascript
vue-form表单验证是否为空值的实例详解
Oct 29 #Javascript
vue获取form表单的值示例
Oct 29 #Javascript
Vue 实现把表单form数据 转化成json格式的数据
Oct 29 #Javascript
使用axios请求时,发送formData请求的示例
Oct 29 #Javascript
基于form-data请求格式详解
Oct 29 #Javascript
You might like
php数组删除元素示例
2014/03/21 PHP
PHP图片处理之使用imagecopyresampled函数裁剪图片例子
2014/11/19 PHP
PHP实现对二维数组某个键排序的方法
2016/09/14 PHP
JavaScript高级程序设计(第3版)学习笔记10 再访js对象
2012/10/11 Javascript
jquery 漂亮的删除确认和提交无刷新删除示例
2013/11/13 Javascript
Javascript学习笔记之 对象篇(三) : hasOwnProperty
2014/06/24 Javascript
对JavaScript客户端应用编程的一些建议
2015/06/24 Javascript
javascript实现将文件保存到本地方法汇总
2015/07/26 Javascript
javascript省市级联功能实现方法实例详解
2015/10/20 Javascript
bootstrap实现弹窗和拖动效果
2016/01/03 Javascript
jQuery取得iframe中元素的常用方法详解
2016/01/14 Javascript
jQuery EasyUi实战教程之布局篇
2016/01/26 Javascript
AngularJS学习笔记之依赖注入详解
2016/05/16 Javascript
jQuery插件FusionWidgets实现的Cylinder图效果示例【附demo源码】
2017/03/23 jQuery
JavaScript引用类型Object常见用法实例分析
2018/08/08 Javascript
使用pkg打包ThinkJS项目的方法步骤
2019/12/30 Javascript
JavaScript 如何在浏览器中使用摄像头
2020/12/02 Javascript
Nest.js环境变量配置与序列化详解
2021/02/21 Javascript
Python时间的精准正则匹配方法分析
2017/08/17 Python
python检测文件夹变化,并拷贝有更新的文件到对应目录的方法
2018/10/17 Python
对python dataframe逻辑取值的方法详解
2019/01/30 Python
Python pandas DataFrame操作的实现代码
2019/06/21 Python
python实现发送form-data数据的方法详解
2019/09/27 Python
Python一行代码解决矩阵旋转的问题
2019/11/30 Python
Python 限定函数参数的类型及默认值方式
2019/12/24 Python
Python函数递归调用实现原理实例解析
2020/08/11 Python
Canvas系列之滤镜效果
2019/02/12 HTML / CSS
美国婴儿和儿童服装购物网站:PatPat
2020/10/01 全球购物
介绍一下SQL Server里面的索引视图
2016/07/31 面试题
师范应届毕业生自荐信
2013/11/18 职场文书
校园十大歌手策划书
2014/02/01 职场文书
教师求职信
2014/06/17 职场文书
2014年银行客户经理工作总结
2014/11/12 职场文书
挂职个人工作总结
2015/03/05 职场文书
因身体原因离职的辞职信范文
2015/05/12 职场文书
vue实现移动端div拖动效果
2022/03/03 Vue.js