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