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 相关文章推荐
jquery 操作单选框,复选框,下拉列表实现代码
Oct 27 Javascript
JavaScript 常见安全漏洞和自动化检测技术
Aug 21 Javascript
九种原生js动画效果
Nov 11 Javascript
JavaScript 轮播图和自定义滚动条配合鼠标滚轮分享代码贴
Oct 28 Javascript
如何用js判断dom是否有存在某class的值
Feb 13 Javascript
Vuex之理解Store的用法
Apr 19 Javascript
JS 组件系列之Bootstrap Table的冻结列功能彻底解决高度问题
Jun 30 Javascript
JS 中LocalStorage和SessionStorage的使用
Aug 17 Javascript
JavaScript创建对象的七种方式全面总结
Aug 21 Javascript
JS+Canvas绘制动态时钟效果
Nov 10 Javascript
深入理解js A*寻路算法原理与具体实现过程
Dec 13 Javascript
使用这 6个Vue加载动画库来减少我们网站的跳出率
May 18 Vue.js
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
使用 eAccelerator加速PHP代码的目的
2007/03/16 PHP
php的declare控制符和ticks教程(附示例)
2014/03/21 PHP
php以fastCGI的方式运行时文件系统权限问题及解决方法
2015/05/11 PHP
thinkphp3.2.3版本的数据库增删改查实现代码
2016/09/22 PHP
Thinkphp实现短信验证注册功能
2016/10/18 PHP
php实现的中秋博饼游戏之绘制骰子图案功能示例
2017/11/06 PHP
laravel实现一个上传图片的接口,并建立软链接,访问图片的方法
2019/10/12 PHP
响应鼠标变换表格背景或者颜色的代码
2009/03/30 Javascript
javascript 框架小结 个人工作经验
2009/06/13 Javascript
javascript检测是否联网的实现代码
2014/09/28 Javascript
js实现iframe自动自适应高度的方法
2015/02/17 Javascript
JavaScript中的parse()方法使用简介
2015/06/12 Javascript
jquery+CSS3实现淘宝移动网页菜单效果
2015/08/31 Javascript
vue组件中点击按钮后修改输入框的状态实例代码
2017/04/14 Javascript
浅谈 Vue v-model指令的实现原理
2017/06/08 Javascript
基于vue组件实现猜数字游戏
2020/05/28 Javascript
webstorm和.vue中es6语法报错的解决方法
2018/05/08 Javascript
Nodejs中的JWT和Session的使用
2018/08/21 NodeJs
[05:13]2018DOTA2亚洲邀请赛主赛事第二日战况回顾 LGD、VG双雄携手晋级
2018/04/05 DOTA
一篇不错的Python入门教程
2007/02/08 Python
python实现将英文单词表示的数字转换成阿拉伯数字的方法
2015/07/02 Python
Python Socket传输文件示例
2017/01/16 Python
python之当你发现QTimer不能用时的解决方法
2019/06/21 Python
django-初始配置(纯手写)详解
2019/07/30 Python
用Python抢火车票的简单小程序实现解析
2019/08/14 Python
python 默认参数相关知识详解
2019/09/18 Python
美国高街时尚品牌:OASAP
2016/07/24 全球购物
大专毕业自我鉴定
2014/02/04 职场文书
美容院营销方案
2014/03/05 职场文书
学习经验演讲稿
2014/05/10 职场文书
陈安之励志演讲稿
2014/08/21 职场文书
综治工作汇报材料
2014/10/27 职场文书
2014年管理人员工作总结
2014/12/01 职场文书
如何写观后感
2015/06/19 职场文书
教师节大会主持词
2015/07/06 职场文书
如何获取numpy array前N个最大值
2021/05/14 Python