【发布时间】:2012-03-04 14:24:54
【问题描述】:
我在一个页面中有一个垂直滚动的 div,它也可以垂直滚动。
当子div用鼠标滚轮滚动到滚动条的顶部或底部时,页面(body)开始滚动。当鼠标悬停在子 div 上时,我希望页面(正文)滚动被锁定。
This SO post (scroll down to the selected answer) 很好地说明了这个问题。
This SO question 与我的基本相同,但选择的答案会导致我的页面内容随着滚动条的消失和重新出现而明显水平移动。
我认为可能有一个利用 event.stopPropagation() 的解决方案,但无法使任何工作。在 ActionScript 中,这种事情可以通过在子 div 上放置一个鼠标滚轮处理程序来解决,该处理程序在事件到达 body 元素之前调用 stopPropagation()。由于 JS 和 AS 都是 ECMAScript 语言,我认为这个概念可以翻译,但它似乎不起作用。
是否有防止我的页面内容移动的解决方案?最有可能使用 stopPropagation 而不是 CSS 修复?欢迎使用 JQuery 和纯 JS 的答案。
【问题讨论】:
-
我实际上独立地遇到了与您相同的解决方案(但略有不同 - 您使用 jQuery 事件,我使用纯 JS 事件。无论如何,看起来您的解决方案效果很好,谢谢@ Mrtsherman。
标签: javascript html scroll stoppropagation