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 相关文章推荐
javascript之卸载鼠标事件的代码
May 14 Javascript
Jquery 设置标题的自动翻转
Oct 03 Javascript
LazyLoad 延迟加载(按需加载)
May 31 Javascript
js常用代码段收集
Oct 28 Javascript
jQuery自定义添加&quot;$&quot;与解决&quot;$&quot;冲突的方法
Jan 19 Javascript
js获取页面引用的css样式表中的属性值方法(推荐)
Aug 19 Javascript
JSON对象 详解及实例代码
Oct 18 Javascript
JavaScript自定义文本框光标
Mar 05 Javascript
jquery表单提交带错误信息提示效果
Mar 09 Javascript
vue组件之间通信方式实例总结【8种方式】
Feb 22 Javascript
基于vue hash模式微信分享#号的解决
Sep 07 Javascript
原生JS生成指定位数的验证码
Oct 28 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者的疑难问答(1)
2006/10/09 PHP
Yii CDBCriteria常用方法实例小结
2017/01/19 PHP
PHP使用HTML5 FileApi实现Ajax上传文件功能示例
2019/07/01 PHP
js 代码集(学习js的朋友可以看下)
2009/07/22 Javascript
JS 在指定数组中随机取出N个不重复的数据
2014/06/10 Javascript
Flexigrid在IE下不显示数据的有效处理方法
2014/09/04 Javascript
webapp框架AngularUI的demo改造之路
2014/12/21 Javascript
Mac下使用charles遇到的问题以及解决办法
2017/01/10 Javascript
React-Native之定时器Timer的实现代码
2017/10/04 Javascript
vue select二级联动第二级默认选中第一个option值的实例
2018/01/10 Javascript
Webpack 4.x搭建react开发环境的方法步骤
2018/08/15 Javascript
使用vue根据状态添加列表数据和删除列表数据的实例
2018/09/29 Javascript
ES10 特性的完整指南小结
2019/03/04 Javascript
jquery树形插件zTree高级使用详解
2019/08/16 jQuery
JS实现手写 forEach算法示例
2020/04/29 Javascript
vue 使用async写数字动态加载效果案例
2020/07/18 Javascript
[02:19]DOTA2女子战队FOX视频专访:希望更多美眉一起加入
2013/10/15 DOTA
[02:37]2018DOTA2亚洲邀请赛赛前采访 VP.no[o]ne心中最强SOLO是谁
2018/04/04 DOTA
python对DICOM图像的读取方法详解
2017/07/17 Python
朴素贝叶斯Python实例及解析
2018/11/19 Python
Python控制Firefox方法总结
2019/06/03 Python
python批量下载抖音视频
2019/06/17 Python
python异步实现定时任务和周期任务的方法
2019/06/29 Python
TensorFlow Saver:保存和读取模型参数.ckpt实例
2020/02/10 Python
Python为何不支持switch语句原理详解
2020/10/21 Python
德国最大的网上足球商店:11teamsports
2019/09/11 全球购物
高中自我鉴定范文
2013/11/03 职场文书
竞争与合作演讲稿
2014/05/12 职场文书
管理岗位竞聘演讲稿
2014/08/18 职场文书
个人纪律作风整改措施思想汇报
2014/10/12 职场文书
批评与自我批评范文
2014/10/15 职场文书
校园环境卫生倡议书
2015/04/29 职场文书
建筑工程挂靠协议书
2016/03/23 职场文书
导游词书写之黄山
2019/08/06 职场文书
用Python爬虫破解滑动验证码的案例解析
2021/05/06 Python
Win11怎么添加用户?Win11添加用户账户的方法
2022/07/15 数码科技