【发布时间】:2011-09-22 12:41:37
【问题描述】:
在 Apple 魔术鼠标或触摸板上滑动手指时,Safari 不会更新 document.body.scrollLeft。它仅在松开手指时触发。在 OSX Lion 下的 Safari 中尝试以下示例。它在其他浏览器中按预期更新,但工作方式类似于在 Safari Lion 中的 iOS 上滑动(似乎在“touchend”上触发)。
拖动滚动条使其行为符合预期。使用触摸板或 Apples 魔术鼠标来回滚动会使其行为怪异。
可以通过将内容移动到带有width: 100%; height: 100%; overflow-left: scroll; 的容器中来解决,但我的问题是需要从body 获取它。有什么想法吗?
【问题讨论】:
-
你试过
body { width: 100%; height: 100%; overflow-left: scroll; }吗? -
是的,它没有任何区别。检查更新的小提琴:jsfiddle.net/Z48fv/1
-
哦,好的。希望其他人会回答,因为我没有 Mac :(
-
我可以确认您的演示可以在带有触摸板的 Snow Leopard 上运行。
-
我有 10.7.1 Lion 和 Safari 5.1,两者都提供了链接。
Triggered和Scrolled变量已正确更新。即使我使用触摸板甚至使用鼠标(通过抓取滚动条)。它也可以在不释放手指/鼠标按钮的情况下工作。
标签: javascript safari scroll osx-lion fixed