【问题标题】:Prevent any JS events from elements that are being scrolled防止正在滚动的元素发生任何 JS 事件
【发布时间】:2013-10-29 15:45:38
【问题描述】:

我强烈怀疑我在移动设备上糟糕的滚动性能是由于被滚动的元素触发了许多事件。现在 - 有没有一种方便的方法可以防止被滚动的 DOM 元素内的所有这些事件在滚动完成之前触发?没有 mouseenter、mouseleave、click、focus、active ......什么都没有......直到用户完成滚动?

感谢您的帮助。

【问题讨论】:

  • 查看此链接了解类似问题stackoverflow.com/questions/9144560/…
  • 您是否有证据表明鼠标单击和焦点事件首先在移动设备上被触发?如果他们是,我会感到惊讶。
  • 事件列表是为了澄清我的意思,但我现在发现它并不那么明智。是的,点击和聚焦是正确的。我正在寻找一种方法来防止在滚动时触发任何事件,而不必手动跟踪每个事件侦听器。一种通用的方式,我可以附加到任何 DOM 元素上,从而在滚动时停止任何事情。感谢所有已经回答的人,我会调查所有这些!

标签: javascript html css scroll event-bubbling


【解决方案1】:

您不太可能仅从事件触发中看到性能问题,否则每个页面都会出现性能问题。这些处理程序中的代码很可能花费了太长时间。

您可能应该在绑定事件处理程序时使用debouncethrottle。我相信有提供类似功能的 jQuery 插件可用,或者您可以查看下划线的代码,如果您不想包含该库,则仅提取您需要的方法。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-25
    • 1970-01-01
    • 2013-08-26
    • 2021-08-15
    • 2012-12-01
    相关资源
    最近更新 更多