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操作XML实例总结(加载与解析XML文件、字符串)
Dec 08 Javascript
JavaScript中Window对象的属性及事件
Dec 25 Javascript
Vue.js快速入门实例教程
Oct 15 Javascript
JavaScript获取服务器时间的方法详解
Dec 11 Javascript
vue中用动态组件实现选项卡切换效果
Mar 25 Javascript
ES6中箭头函数的定义与调用方式详解
Jun 02 Javascript
Vue2.0+ElementUI实现表格翻页的实例
Oct 23 Javascript
JS交互点击WKWebView中的图片实现预览效果
Jan 05 Javascript
vue 2.x 中axios 封装的get 和post方法
Feb 28 Javascript
扫微信小程序码实现网站登陆实现解析
Aug 20 Javascript
jquery 时间戳转日期过程详解
Oct 12 jQuery
原生JS实现拖拽功能
Dec 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
DC动画很好看?新作烂得令人发指,名叫《红色之子》
2020/04/09 欧美动漫
php ignore_user_abort与register_shutdown_function 使用方法
2009/06/14 PHP
php输出xml属性的方法
2015/03/19 PHP
PHP文件与目录操作示例
2016/12/24 PHP
Laravel 连接(Join)示例
2019/10/16 PHP
基于mootools 1.3框架下的图片滑动效果代码
2011/04/22 Javascript
js实现全屏漂浮广告移入光标停止移动
2013/12/02 Javascript
返回上一页并自动刷新的JavaScript代码
2014/02/19 Javascript
javascript异步编程的4种方法
2014/02/19 Javascript
js控制href内容的连接内容的变化示例
2014/04/30 Javascript
JS使用正则表达式过滤多个词语并替换为相同长度星号的方法
2016/08/03 Javascript
Vue.js 表单校验插件
2016/08/14 Javascript
jquery自定义插件结合baiduTemplate.js实现异步刷新(附源码)
2016/12/22 Javascript
微信小程序 参数传递实例代码
2017/03/20 Javascript
浅谈VUE单页应用首屏加载速度优化方案
2018/08/28 Javascript
微信内置开发 iOS修改键盘换行为搜索的解决方案
2019/11/06 Javascript
用vue写一个日历
2020/11/02 Javascript
[02:50]【扭转乾坤,只此一招】DOTA2全新版本永雾林渊开启新篇章
2020/12/24 DOTA
Python使用OpenCV进行标定
2018/05/08 Python
numpy linalg模块的具体使用方法
2019/05/26 Python
Pyqt QImage 与 np array 转换方法
2019/06/27 Python
Python logging设置和logger解析
2019/08/28 Python
Python+opencv+pyaudio实现带声音屏幕录制
2019/12/23 Python
世界上最大的折扣香水店:FragranceNet.com
2016/10/26 全球购物
三星印度官网:Samsung印度
2019/08/03 全球购物
荷兰DOD药房中文官网:DeOnlineDrogist
2020/12/27 全球购物
static全局变量与普通的全局变量有什么区别
2014/05/27 面试题
广州足迹信息技术有限公司Java软件工程师试题
2014/02/15 面试题
教育技术学专业职业规划书
2014/03/03 职场文书
国际经济贸易专业自荐信
2014/06/13 职场文书
小学“向国旗敬礼”网上签名寄语活动总结
2014/09/27 职场文书
只需要这一行代码就能让python计算速度提高十倍
2021/05/24 Python
Java常用函数式接口总结
2021/06/29 Java/Android
基于HTML十秒做出淘宝页面
2021/10/24 HTML / CSS
聊聊基于pytorch实现Resnet对本地数据集的训练问题
2022/03/25 Python
CSS 左边固定宽右边自适应的6种方法
2022/05/15 HTML / CSS