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判断非数字的简单例子
Jul 18 Javascript
JavaScript改变HTML元素的样式改变CSS及元素属性
Nov 12 Javascript
js计算两个时间之间天数差的实例代码
Nov 19 Javascript
jQuery 遍历函数详解
Jul 05 Javascript
JavaScript实现选择框按比例拖拉缩放的方法
Aug 04 Javascript
JavaScript基础篇(3)之Object、Function等引用类型
Nov 30 Javascript
实例解析Array和String方法
Dec 14 Javascript
JavaScript基于replace+正则实现ES6的字符串模版功能
Apr 25 Javascript
利用babel将es6语法转es5的简单示例
Dec 01 Javascript
vue中引用swiper轮播插件的教程详解
Aug 16 Javascript
js指定日期增加指定月份的实现方法
Dec 19 Javascript
基于Vue3.0开发轻量级手机端弹框组件V3Popup的场景分析
Dec 30 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
php IP及IP段进行访问限制的代码
2008/12/17 PHP
php 正则 过滤html 的超链接
2009/06/02 PHP
PHP中最容易忘记的一些知识点总结
2013/04/28 PHP
探讨PHP函数ip2long转换IP时数值太大产生负数的解决方法
2013/06/06 PHP
PHP解码unicode编码的中文字符代码分享
2014/08/13 PHP
Laravel4中的Validator验证扩展用法详解
2016/07/26 PHP
ThinkPHP5.1框架数据库链接和增删改查操作示例
2019/08/03 PHP
javascript 播放器 控制
2007/01/22 Javascript
收藏一些不常用,但是有用的代码
2007/03/12 Javascript
JQuery UI皮肤定制
2009/07/27 Javascript
jQuery布局插件UI Layout简介及使用方法
2013/04/03 Javascript
jquery获取选中的文本和值的方法
2014/07/08 Javascript
jquery判断单选按钮radio是否选中的方法
2015/05/05 Javascript
浅析jquery unbind()方法移除元素绑定的事件
2016/05/24 Javascript
JS实现关闭当前页而不弹出提示框的方法
2016/06/22 Javascript
利用JS判断字符串是否含有数字与特殊字符的方法小结
2016/11/25 Javascript
Vue.js原理分析之observer模块详解
2017/02/17 Javascript
Vue.js实战之使用Vuex + axios发送请求详解
2017/04/04 Javascript
用angular实现多选按钮的全选与反选实例代码
2017/05/23 Javascript
Vue.js中兄弟组件之间互相传值实例
2017/06/01 Javascript
微信小程序promsie.all和promise顺序执行
2017/10/27 Javascript
vue cli3 调用百度翻译API翻译页面的实现示例
2019/09/13 Javascript
js前端对于大量数据的展示方式及处理方法
2020/12/02 Javascript
Python中Django框架利用url来控制登录的方法
2015/07/25 Python
用TensorFlow实现lasso回归和岭回归算法的示例
2018/05/02 Python
python获取磁盘号下盘符步骤详解
2019/06/19 Python
Django打印出在数据库中执行的语句问题
2019/07/25 Python
Django中create和save方法的不同
2019/08/13 Python
python线程的几种创建方式详解
2019/08/29 Python
法国奢华女性时尚配饰网上商店:Monnier Frères
2016/08/27 全球购物
单身旅行者的单身假期:Just You
2018/04/08 全球购物
几个MySql的面试题
2013/04/22 面试题
项目经理任命书内容
2014/06/06 职场文书
元旦联欢会策划方案
2014/06/11 职场文书
自我检讨书怎么写
2015/05/07 职场文书
2015教师个人师德工作总结
2015/10/23 职场文书