Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/409.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Javascript中禁用Windows滚动_Javascript_Dom Events - Fatal编程技术网

如何在Javascript中禁用Windows滚动

如何在Javascript中禁用Windows滚动,javascript,dom-events,Javascript,Dom Events,我写了一些代码,我想在代码中捕获滚动事件,因此当用户滚动我的div时,滚动应该只在我的div中工作,而页面滚动事件不应该被调用(激发) 我怎么能做到 编辑:我找到了答案:我现在正在使用preventDefault(),它现在正在工作这方面的CSS是: body.noscroll { overflow:hidden; } body.doscroll { overflow:auto; } 只需将其设为默认值并告诉javascript处理滚动,它应该可以正常工作。您可以使用jQuery这样做: $(

我写了一些代码,我想在代码中捕获滚动事件,因此当用户滚动我的div时,滚动应该只在我的div中工作,而页面滚动事件不应该被调用(激发)

我怎么能做到

编辑:我找到了答案:我现在正在使用
preventDefault()
,它现在正在工作

这方面的CSS是:

body.noscroll { overflow:hidden; }
body.doscroll { overflow:auto; }

只需将其设为默认值并告诉javascript处理滚动,它应该可以正常工作。

您可以使用jQuery这样做:

$('body').css({'overflow': 'hidden'});
$('element').on('event', function(){
   $('body').css({'overflow': 'hidden'});   
});
$('body').css({'overflow': 'auto'});
这样,您可以在侦听事件后禁用滚动作为事件处理程序。 在这样的函数中:

$('body').css({'overflow': 'hidden'});
$('element').on('event', function(){
   $('body').css({'overflow': 'hidden'});   
});
$('body').css({'overflow': 'auto'});
如需再次激活滚动条,以备以后需要。 是这样的:

$('body').css({'overflow': 'hidden'});
$('element').on('event', function(){
   $('body').css({'overflow': 'hidden'});   
});
$('body').css({'overflow': 'auto'});
以同样的方式,您将能够使用该功能处理事件以恢复滚动


希望这有帮助。

不,我不想更改页面中的任何内容。这是一个插件,可以在任何页面中使用-我只想当鼠标位于此分区上时,滚动事件在页面中不起作用。您不能在MouseOver上禁用滚动,在MouseOut上启用滚动吗?