仅在移动设备中禁用垂直滚动fory body(不适用于具有溢出的div:auto)

时间:2016-03-11 16:13:40

标签: javascript jquery html css

我想在所有移动设备中禁用垂直滚动,我发现了这个:

document.body.addEventListener('touchmove', function(e){ e.preventDefault(); });

效果很好...... 但是通过这种方式我也禁用了滚动(对于有overflow: auto的div(我的菜单)。

在dekstop浏览器中,当$(window).scroll()overflow: hidden添加到body时,避免使用 JQuery 。并且以这种方式我没有问题,但使用本机JavaScript代码是...我是javascript的新手。

因此,使用jquery,我可以使用overflow:auto禁用正文eccept div的滚动,但不能使用该js代码。

我希望你能帮助我,对不起我的英语。

2 个答案:

答案 0 :(得分:6)

我总是用jQuery解决:

当我想要禁用滚动添加:

    $("body").css({"overflow":"hidden",'position':'fixed'});

body: fixed我确信无法使用移动设备滚动页面(除了具有overflow: auto的div

答案 1 :(得分:0)

你可以通过使它成为屏幕的大小来禁用身体部位的scrool,然后使其不滚动

document.body.addEventListener('touchmove', function(e){ 
   document.getElementsByTagName('body')[0]. style .height = "100vh";
   document.getElementsByTagName('body')[0]. style. overflow = "hidden";
 });