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 相关文章推荐
ExtJS GTGrid 简单用户管理
Jul 01 Javascript
script标签的 charset 属性使用说明
Dec 04 Javascript
一次失败的jQuery优化尝试小结
Feb 06 Javascript
php中给js数组赋值方法
Mar 10 Javascript
jquery实现简单实用的打分程序实例
Jul 23 Javascript
JavaScript与HTML的结合方法详解
Nov 23 Javascript
js实现新年倒计时效果
Dec 10 Javascript
jQuery树形控件zTree使用小结
Aug 02 Javascript
微信公众号支付H5调用支付解析
Nov 04 Javascript
简单实现bootstrap选项卡效果
Feb 08 Javascript
angularJs在多个控制器中共享服务数据的方法
Sep 30 Javascript
如何利用Node.js与JSON搭建简单的动态服务器
Jun 16 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
收听困难?教您超简便短波广播抗干扰方法!
2021/03/01 无线电
php在字符串中查找另一个字符串
2008/11/19 PHP
php中转义mysql语句的实现代码
2011/06/24 PHP
PHP里8个鲜为人知的安全函数分析
2014/12/09 PHP
自己写的php中文截取函数mb_strlen和mb_substr
2015/02/09 PHP
PHP实现的限制IP投票程序IP来源分析
2016/05/04 PHP
php preg_match的匹配不同国家语言实例
2016/12/29 PHP
YUI 读码日记之 YAHOO.util.Dom - Part.1
2008/03/22 Javascript
一个简单的js鼠标划过切换效果
2010/06/30 Javascript
js 优化次数过多的循环 考虑到性能问题
2011/03/05 Javascript
js绑定事件this指向发生改变的问题解决方法
2013/04/23 Javascript
jQuery防止click双击多次提交及传递动态函数或多参数
2014/04/02 Javascript
jQuery UI设置固定日期选择特效代码分享
2015/08/27 Javascript
基于Javascript实现倒计时功能
2016/02/22 Javascript
微信小程序 登陆流程详细介绍
2017/01/17 Javascript
浅谈$_FILES数组为空的原因
2017/02/16 Javascript
JavaScript实现自动跳转文本功能
2017/05/25 Javascript
用Python的pandas框架操作Excel文件中的数据教程
2015/03/31 Python
Python编程之Re模块下的函数介绍
2017/10/28 Python
python实现识别手写数字 python图像识别算法
2020/03/23 Python
使用python3实现操作串口详解
2019/01/01 Python
使用django实现一个代码发布系统
2019/07/18 Python
python每天定时运行某程序代码
2019/08/16 Python
Python标准库itertools的使用方法
2020/01/17 Python
python给图像加上mask,并提取mask区域实例
2020/01/19 Python
css3实现垂直下拉动画菜单示例
2014/04/22 HTML / CSS
南非最大的花卉和送礼服务:NetFlorist
2017/09/13 全球购物
教师的实习鉴定
2013/12/15 职场文书
学生爱国演讲稿
2014/01/14 职场文书
春节晚会主持词
2014/03/24 职场文书
公路局群众路线教育实践活动第一阶段工作汇报
2014/10/25 职场文书
2014年大学生村官工作总结
2014/11/19 职场文书
2015年学校体育工作总结
2015/04/22 职场文书
红灯733-1型14管5波段半导体收音机
2021/04/22 无线电
使用logback实现按自己的需求打印日志到自定义的文件里
2021/08/30 Java/Android
php png失真的原因及解决办法
2021/10/24 PHP