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程序 入门者学习
Jul 09 Javascript
jquery提取元素里的纯文本不包含span等里的内容
Sep 30 Javascript
javascript修改IMG标签的src问题
Mar 28 Javascript
jquery右下角自动弹出可关闭的广告层
May 08 Javascript
JS+CSS实现经典的左侧竖向滑动菜单效果
Sep 23 Javascript
javascript创建cookie、读取cookie
Mar 31 Javascript
深入理解JavaScript中的for循环
Feb 07 Javascript
JavaScript基本类型值-Undefined、Null、Boolean
Feb 23 Javascript
node操作mysql数据库实例详解
Mar 17 Javascript
浅谈vue首屏加载优化
Jun 28 Javascript
vue-quill-editor的使用及个性化定制操作
Aug 04 Javascript
Vue 按照创建时间和当前时间显示操作(刚刚,几小时前,几天前)
Sep 10 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
新浪新闻小偷
2006/10/09 PHP
三种php连接access数据库方法
2013/11/11 PHP
详解WordPress开发中get_header()获取头部函数的用法
2016/01/08 PHP
基于PHP微信红包的算法探讨
2016/07/21 PHP
PHP页面输出搜索后跳转下一页的处理方法
2016/09/30 PHP
PHP队列场景以及实现代码实例详解
2021/02/26 PHP
filemanage功能中用到的common.js
2007/04/08 Javascript
fix-ie5.js扩展在IE5下不能使用的几个方法
2007/08/20 Javascript
qTip 基于JQuery的Tooltip插件[兼容性好]
2010/09/01 Javascript
JavaScript版DateAdd和DateDiff函数代码
2012/03/01 Javascript
用IE重起计算机或者关机的示例代码
2014/03/10 Javascript
javascript类型系统 Window对象学习笔记
2016/01/07 Javascript
深入理解JavaScript 函数
2016/06/06 Javascript
js removeChild 方法深入理解
2016/08/16 Javascript
分享一个原生的JavaScript拖动方法
2016/09/25 Javascript
BootStrap table使用方法分析
2016/11/08 Javascript
深入学习jQuery中的data()
2016/12/22 Javascript
Node.Js生成比特币地址代码解析
2018/04/21 Javascript
详解vue组件开发脚手架
2018/06/15 Javascript
vue完成项目后,打包成静态文件的方法
2018/09/03 Javascript
利用JavaScript缓存远程窃取Wi-Fi密码的思路详解
2018/11/05 Javascript
JS实现联想、自动补齐国家或地区名称的功能
2020/07/07 Javascript
vue-cli3 引入 font-awesome的操作
2020/08/11 Javascript
JS实现京东商品分类侧边栏
2020/12/11 Javascript
python从入门到精通(DAY 3)
2015/12/20 Python
python3使用flask编写注册post接口的方法
2018/12/28 Python
解决Django Static内容不能加载显示的问题
2019/07/28 Python
Python多继承以及MRO顺序的使用
2019/11/11 Python
python DataFrame转dict字典过程详解
2019/12/26 Python
CSS3动画之流彩文字效果+图片模糊效果+边框伸展效果实现代码合集
2017/08/18 HTML / CSS
html5 touch事件实现触屏页面上下滑动(一)
2016/03/10 HTML / CSS
HTML5 LocalStorage 本地存储刷新值还在
2017/03/10 HTML / CSS
自我评价正确写法范文
2013/12/10 职场文书
会计做账心得体会
2016/01/22 职场文书
nginx搭建图片服务器的过程详解(root和alias的区别)
2021/03/31 Servers
如何理解Vue前后端数据交互与显示
2021/05/10 Vue.js