【发布时间】:2012-01-05 04:36:42
【问题描述】:
我正在开发一个在 div 元素中使用水平滚动的 UI(使用 overflow: scroll)。我无法向左滚动,因为它会启动动画以返回历史。同样,当有一个网站可以前进时,我无法向右滚动。
它在其他浏览器上运行良好,包括 OS X Lion 上的 Chrome,它还支持滑动回到历史。 (在我开发的时候,在 div 中滚动也适用于 Safari。我添加了可能会破坏滚动的事件处理程序和 html,但我不知道是什么让它发生了变化。)
理想情况下,我希望在滚动特定的div 时防止在历史记录中返回或前进(即使它已经结束。)
更新:我尝试添加 jQuery.mousewheel 并以某种方式解决了问题。 (我刚刚在.mousewheel() 上附加了一个空事件处理程序。)我仍在寻找明确的答案。
【问题讨论】:
-
作为 Lion 用户 - 请不要这样做 - 当你的小网站覆盖我的操作系统设置时,这很烦人!
-
@RichBradshaw 作为狮子用户,当我们的操作系统从根本上改变了互联网的事件模型时,与其他人打交道不想考虑“这个小众计算机操作系统如何从根本上改变事件型号”。\
-
说实话,我真的是在扮演魔鬼代言人——但值得考虑。我不确定大多数人是否知道您可以横向滚动 - 在大多数人的计算机上,他们仍然有一个带滚轮的鼠标。网站设计是否值得追求,值得仔细考虑。
-
@RichBradshaw 感谢您体贴的 cmets。水平滚动只是我正在处理的 UI 的一个方面。作为 Lion 用户,我对使用水平滚动的网站感到恼火,因为我会不小心回到历史。我认为在预计滚动将以另一种方式工作的小部分禁用它是一个很好的折衷方案。
-
有人知道如何关闭向左滑动以在浏览器级别触发吗?很长一段时间以来,我一直喜欢使用两指滑动进行水平滚动,但现在当它还触发后退/前进事件时,这很烦人。在 Safari 偏好设置中的任何地方都看不到它。
标签: javascript macos safari