【问题标题】:How to prevent people from scrolling using mouse wheel press our touch dragging?如何防止人们使用鼠标滚轮滚动按下我们的触摸拖动?
【发布时间】:2014-08-05 18:20:57
【问题描述】:

在 HTML/CSS/JS 中,我无法弄清楚一件事: 如何防止人们使用鼠标滚轮按下滚动元素(即按住鼠标滚轮并拖动,或单击鼠标滚轮,拖动,再次单击鼠标滚轮)以及当人们尝试拖动元素时如何做同样的事情在触摸设备上。

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

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

  • 如何使用 JavaScript 捕获这些事件?
  • 例如,在this page 上,如何在菜单打开时阻止水平和垂直滚动?

【问题讨论】:

    标签: javascript html css scroll touch


    【解决方案1】:

    如果您创建一个 jsfiddle,我们可以提供更好的解决方案。如果您对 jquery 没问题,我可以为您的第二点提供一些解决方案“例如,在此页面上,如何在菜单打开时阻止水平和垂直滚动?”。

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

    .overhidden
    {
     overflow:hidden !important;
    }
    

    接下来,当您按下屏幕上的菜单图标时,我们需要应用此类。如果他们再次点击关闭,我们也需要删除。像下面这样在 jquery 中很容易做到。

     $(document).ready(function(){
       $('#hamburger').click(function(){
          $('body').toggleClass('overhidden');
       });
     });
    

    【讨论】:

      猜你喜欢
      • 2022-11-12
      • 2021-03-18
      • 1970-01-01
      • 2010-12-25
      • 1970-01-01
      • 1970-01-01
      • 2014-02-11
      • 1970-01-01
      • 2013-05-04
      相关资源
      最近更新 更多