当div位于前景时,我想禁止滚动主体。 div是可滚动的,我不希望身体随之滚动。我在浏览器中完成了这个,但它在移动设备中不起作用。从div开放时我需要改变什么:
$('body').css('overflow', 'hidden');
$('body').css('overflow', 'auto');
但正如我所说,它不适用于移动设备(iOS或Android)。我也尝试了epreventdefault(),但没有帮助。通过onclick事件改变了css ......
答案 0 :(得分:1)
这对我有用:
document.body.scroll = "no";
document.body.style.overflow = 'hidden';
document.height = window.innerHeight;
document.body.addEventListener('touchmove', function(e){ e.preventDefault(); });
答案 1 :(得分:1)
在面对移动滚动的类似问题导致我的可滚动div和不需要的滚动体的混乱之后,touchmove侦听器事件是关键。我遇到了一些警告,我必须弄明白。一,为了删除事件监听器,并让你的身体返回其滚动(就像我的情况一样从右边滑入并覆盖整个窗口的菜单)你必须命名包含在事件监听器中的函数,这样你可以使用removeEventListener调用相同的函数。
var prevent = function(e){
e.preventDefault();
};
function menuOpen(){
document.body.addEventListener('touchmove', prevent);
};
function menuClose(){
document.body.removeEventListener('touchmove', prevent);
};