我正在构建一个 Web 应用程序,它有一个由许多小的可滚动 div(实际上是Ace编辑器)组成的网格,并且这个网格有足够的元素,它比窗口大。当用户开始滚动空白区域时,我希望他们滚动窗口本身;当用户开始在网格元素内滚动时,我希望他们在那里滚动 div 内容。问题是,如果用户开始在空白空间上滚动,然后滚动以使他们的鼠标移到网格元素上,则可滚动 div 会捕获所有滚动事件,从而中断用户在网格上的流动并将它们“困”在网格内元素。
我无法手动捕获onmousewheel
事件,因为 AFAIK 无法单独捕获水平鼠标滚轮移动与垂直移动,我希望 Mac OS X 上的用户能够向各个方向滚动。我考虑过使用 JS 在第一个onscroll
事件上添加一个 z-index 非常高的不可见 div,并在onscroll
一段时间内没有触发事件时立即将其删除。尚未对此进行编码,但我想知道是否有更好的解决方案,或者是否有任何我没有想到的潜在陷阱。任何帮助或建议都会很棒!谢谢!