今天碰到一個問題,用$(‘html’).css(“overflow”,“hidden”)禁止滾動在移動端竟然無效,不知道什麼原因,是以又試了幾個移動端禁止滑動方法,供參考。
方法一:(經測試有效)
禁止滑動
document.body.addEventListener('touchmove', function (e) {
e.preventDefault()
}, {passive: false})
恢複滑動
document.body.addEventListener('touchmove', function (e) {
window.event.returnValue = true
})
方法二:(經測試恢複滑動無效…)
禁止滑動
var fun=function(e){e.preventDefault();};
document.body.style.overflow='hidden';
document.addEventListener("touchmove",fun,{passive:false});//禁止頁面滑動
用以下方法恢複滑動經測試無效…
var fun=function(e){e.preventDefault();};
document.body.style.overflow='';
document.removeEventListener("touchmove",fun,{passive:false});
方法三:(經測試使用此方法隻能控制遮罩層不能滑動,遮罩層下面的内容仍然可以滑動,但恢複滑動是有效的)
禁止滑動
var fun=function(e){e.preventDefault();};
document.body.style.overflow='hidden';
document.addEventListener("touchmove",fun,false);//禁止頁面滑動
恢複滑動
var fun=function(e){e.preventDefault();};
document.body.style.overflow='';
document.removeEventListener("touchmove",fun,false);
歡迎各位留言指點。