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操作CheckBoxList实现全选/反选(在客服端完成)
Feb 02 Javascript
js charAt的使用示例
Feb 18 Javascript
jquery原创弹出层折叠效果点击折叠弹出一个层
Mar 12 Javascript
JS数字抽奖游戏实现方法
May 04 Javascript
jQuery 获取跨域XML(RSS)数据的相关总结分析
May 18 Javascript
15款最好的Bootstrap在线编辑器
Aug 03 Javascript
swiper动态改变滑动内容的实现方法
Jan 17 Javascript
使用form-create动态生成vue自定义组件和嵌套表单组件
Jan 18 Javascript
element-ui组件中input等的change事件中传递自定义参数
May 22 Javascript
vuejs element table 表格添加行,修改,单独删除行,批量删除行操作
Jul 18 Javascript
js实现滑动滑块验证登录
Jul 24 Javascript
vue-cli3访问public文件夹静态资源报错的解决方式
Sep 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循环函数使用介绍之PHP基础入门教程
2013/09/21 PHP
PHP中HTML标签过滤技巧
2014/01/07 PHP
php操作mysql数据库的基本类代码
2014/02/25 PHP
php实现的通用图片处理类
2015/03/24 PHP
PHP中Trait及其应用详解
2017/02/14 PHP
php 删除指定文件夹的实例讲解
2017/07/25 PHP
PHP实现基于3DES算法加密解密字符串示例
2018/08/24 PHP
基于PHP实现邮箱验证激活过程详解
2020/10/28 PHP
详解jQuery Mobile自定义标签
2016/01/06 Javascript
基于jQuery Tipso插件实现消息提示框特效
2016/03/16 Javascript
[js高手之路]原型式继承与寄生式继承详解
2017/08/28 Javascript
浅谈React Native 中组件的生命周期
2017/09/08 Javascript
开发Vue树形组件的示例代码
2017/12/21 Javascript
Angular利用内容投射向组件输入ngForOf模板的方法
2018/03/05 Javascript
Vue中使用vux配置代码详解
2018/09/16 Javascript
Element中的Cascader(级联列表)动态加载省\市\区数据的方法
2019/03/27 Javascript
使用 node.js 模仿 Apache 小部分功能
2019/07/07 Javascript
js图片无缝滚动插件使用详解
2020/05/26 Javascript
vue从零实现一个消息通知组件的方法详解
2020/03/16 Javascript
Vue select 绑定动态变量的实例讲解
2020/10/22 Javascript
python中的代码编码格式转换问题
2015/06/10 Python
Python新手入门最容易犯的错误总结
2017/04/24 Python
详解Django+Uwsgi+Nginx的生产环境部署
2018/06/25 Python
基于随机梯度下降的矩阵分解推荐算法(python)
2018/08/31 Python
Python 分享10个PyCharm技巧
2019/07/13 Python
Python中断多重循环的思路总结
2019/10/04 Python
Pytorch使用MNIST数据集实现CGAN和生成指定的数字方式
2020/01/10 Python
Python键鼠操作自动化库PyAutoGUI简介(小结)
2020/05/17 Python
Python实现树莓派摄像头持续录像并传送到主机的步骤
2020/11/30 Python
以实惠的价格提供高品质的时尚:Newchic
2018/01/18 全球购物
英国标准协会商店:BSI Shop
2019/02/25 全球购物
Myprotein法国官网:欧洲第一运动营养品牌
2019/03/26 全球购物
英国历史最悠久的DJ设备供应商:DJ Finance、DJ Warehouse、The DJ Shop
2019/09/04 全球购物
Linux如何修改文件和文件夹的权限
2013/09/05 面试题
软件测试笔试题
2012/10/25 面试题
pytorch 如何使用float64训练
2021/05/24 Python