标签:body 回弹 vue beforeDestroy ios inobounce touchmove forbidScroll
第一种方法:
通过监听 touchmove 事件:当手指在屏幕上滑动的时候连续地触发。在这个事件发生期间,调用preventDefault()事件可以阻止滚动。
// 禁止页面滚动
var forbidScroll = function (e) {
e.preventDefault();
};
// 通过 $once 来监听生命周期 beforeDestroy 钩子
this.$once("hook:beforeDestroy", () => {
body.removeEventListener("touchmove", forbidScroll);
});
//函数调用
function forbidTouchMove() {
document.body.style.overflow = "hidden";
body.addEventListener("touchmove", forbidScroll, { passive: false });
}
forbidTouchMove();
方法二:
可以使用css新属性overscroll-behavior
body {
/* 禁用默认的下拉刷新和边界效果,但是依然可以进行滑动导航 */
overscroll-behavior-y: none;
}
但是需要浏览器支持该属性
方法三:
可以使用插件inobounce(但是只适用于ios系统,安卓不适用)
官网:https://github.com/lazd/iNoBounce
在vue中:
//先下载npm install inobounce -s
//然后在script中:
<script>
import inobounce from 'inobounce'
export default {
data() {
return { }
},
mounted() { },
created() {
let u = navigator.userAgent
if (u.indexOf('iPhone') > -1) {
inobounce.enable()
}
},
beforeDestroy() {
inobounce.disable()
},
methods: { }
}
</script>
标签:body,回弹,vue,beforeDestroy,ios,inobounce,touchmove,forbidScroll 来源: https://blog.csdn.net/weixin_43822237/article/details/118709286
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。