微信网页禁止页面下拉滑动
(1)最简单粗暴的方法,就是禁止掉浏览器整个页面的滑动document.body.addEventListener('touchmove', function (e) {e.preventDefault()}, {passive: false})上边代码块中的方法一般不建议使用,除非整个页面都不可以滚动时(2)除了需要滚动的部分,禁止掉浏览器滚动的默认事件(VUE中组件的部分代...
(1)最简单粗暴的方法,就是禁止掉浏览器整个页面的滑动
document.body.addEventListener('touchmove', function (e) {
e.preventDefault()
}, {passive: false})
上边代码块中的方法一般不建议使用,除非整个页面都不可以滚动时
(2)除了需要滚动的部分,禁止掉浏览器滚动的默认事件(VUE中组件的部分代码)
methods: {
// 某些元素可以滚动的方法
overscroll (el){
el.addEventListener('touchstart', function() {
let top = el.scrollTop
let totalScroll = el.scrollHeight
let currentScroll = top + el.offsetHeight
if(top === 0) {
el.scrollTop = 1;
}else if(currentScroll === totalScroll) {
el.scrollTop = top - 1;
}
})
el.addEventListener('touchmove', function (evt) {
if(el.offsetHeight < el.scrollHeight)
evt._isScroller = true
})
},
// 监听事件方法
hiddenPrevent () {
if (!evt._isScroller) {
evt.preventDefault()
}
}
},
mounted () {
this.overscroll(document.querySelector('.content')) // 让class为content的部分有默认滚动事件
document.body.addEventListener('touchmove', this.hiddentPrevent, {passive: false})
},
destroyed () {
// 销毁时移除监听
document.body.removeEventListener('touchstart', this.hiddentPrevent, {passive: false})
document.body.removeEventListener('touchmove', this.hiddentPrevent, {passive: false})
更多推荐
所有评论(0)