【问题标题】:JavaScript - Cancel Scroll eventJavaScript - 取消滚动事件
【发布时间】:2011-03-25 05:16:54
【问题描述】:

我想在我的一个页面中禁用滚动。我不想写了

scroll(0,0)scrollTo(0,0)

在滚动事件中,这将产生“跳跃”的性质。我不能有类似的东西

event.preventDefault()

取消活动?

【问题讨论】:

  • stackoverflow.com/questions/4770025/… 虽然这是暂时禁用滚动,但您可以将其设置为永久禁用它。您应该使用它而不是使用溢出:隐藏,因为 Chrome 有一个错误,您仍然可以在溢出时滚动:使用鼠标滚轮、箭头键、pgup 和 pgdn 键的隐藏页面,如果您使用的是触摸设备,则可以触摸滚动。该链接中接受的答案提供了一种有效禁用它的方法。

标签: javascript scroll


【解决方案1】:

防止滚动的唯一可接受的方法是使内容适合窗口。其他任何事情,你都会惹恼用户。

您也可以使用position: fixed CSS - 但是,如果它比窗口大,其余部分将无法使用,因此您不妨遵循建议 #1。

【讨论】:

  • 截取内容其实有很多用途。我的网站使用 css 3d 转换,由于某种原因,它的无用部分超出了页面末尾 10-20 像素。
  • 很笼统的声明阿马丹。在我的情况下,我想关闭自动滚动(这是“惹恼”我的用户)。当添加/删除列表中的元素时会发生这种情况。请不要仅仅因为这个特定的用例可能会受到批评,就认为某种特定的技术不好。
【解决方案2】:

我想知道 overflow: hidden; 是否可以通过将它放在 CSS 中的 html, body 选择器上来工作?

【讨论】:

  • 刚刚在 Firefox 3.6.8 中进行了测试,它可以通过将它放在 body 元素上来工作。
  • 请注意,当应用溢出隐藏时,chrome 错误仍然允许滚动。
【解决方案3】:

创建一个填充整个区域的div,并将其设置为overflow: hidden。这样一来,您将永远不会得到滚动条,也不会创建滚动事件。

【讨论】:

    【解决方案4】:
    document.body.style.overflow = 'hidden';
    

    【讨论】:

    • 请注意,当应用溢出隐藏时,chrome 错误仍然允许滚动。
    猜你喜欢
    • 2011-09-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-13
    • 2011-02-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多