Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/73.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 如何防止人们使用鼠标滚轮按我们的触摸拖动滚动?_Javascript_Html_Css_Scroll_Touch - Fatal编程技术网

Javascript 如何防止人们使用鼠标滚轮按我们的触摸拖动滚动?

Javascript 如何防止人们使用鼠标滚轮按我们的触摸拖动滚动?,javascript,html,css,scroll,touch,Javascript,Html,Css,Scroll,Touch,在HTML/CSS/JS中,有一件事我很难弄清楚: 如何防止人们使用鼠标滚轮按下滚动元素,即按住鼠标滚轮并拖动,或单击鼠标滚轮,拖动,再次单击鼠标滚轮,以及当人们尝试在触摸设备上拖动元素时如何执行相同操作 这是我在尝试制作汉堡包式菜单时偶然发现的 将元素的CSS设置为overflow:hidden将隐藏滚动条,但使用上述两种方法,滚动条仍然很容易。 到目前为止,我找到的唯一“解决方案”是制作第二个元素,并将其放置在不应滚动的元素顶部。但对我来说,这似乎不是一个完美的解决方案 如何使用JavaSc

在HTML/CSS/JS中,有一件事我很难弄清楚: 如何防止人们使用鼠标滚轮按下滚动元素,即按住鼠标滚轮并拖动,或单击鼠标滚轮,拖动,再次单击鼠标滚轮,以及当人们尝试在触摸设备上拖动元素时如何执行相同操作

这是我在尝试制作汉堡包式菜单时偶然发现的

将元素的CSS设置为overflow:hidden将隐藏滚动条,但使用上述两种方法,滚动条仍然很容易。 到目前为止,我找到的唯一“解决方案”是制作第二个元素,并将其放置在不应滚动的元素顶部。但对我来说,这似乎不是一个完美的解决方案

如何使用JavaScript捕获这些事件? 例如,当菜单打开时,如何阻止水平和垂直滚动?
如果您创建一个JSFIDLE,我们可以提供更好的解决方案。如果您对jquery没有意见,我可以为您的第二点提供一些解决方案。例如,在这个页面上,当菜单打开时,如何阻止水平和垂直滚动

首先,您需要创建一个简单的类,如下所示

.overhidden
{
 overflow:hidden !important;
}
 $(document).ready(function(){
   $('#hamburger').click(function(){
      $('body').toggleClass('overhidden');
   });
 });
接下来,当您按下屏幕上的菜单图标时,我们需要应用这个类。如果他们再次单击关闭,我们也需要删除。在jquery中很容易做到,如下所示

.overhidden
{
 overflow:hidden !important;
}
 $(document).ready(function(){
   $('#hamburger').click(function(){
      $('body').toggleClass('overhidden');
   });
 });