我正在尝试编写一些应该在移动浏览器上运行的jQuery代码,并且我遇到了将视口滚动到元素的问题。我有一个不可见的元素,我想滚动(X和Y),以便它变得可见。
我尝试过使用优秀的scrollTo jquery插件(http://flesler.blogspot.com/2007/10/jqueryscrollto.html),虽然它在我试过的所有桌面浏览器上运行得非常好(FF,IE6 +,Chrome)它在我的Android浏览器上失败了(原生于Android 2)。它似乎滚动,但没有到正确的位置。
我在这里使用jsfiddle设置了一个演示页面(结果链接) - http://jsfiddle.net/8cfqM/3/embedded/result/
在这个非常简单的演示中,我设置了两个绝对定位的div,一个关闭到页面的右下角(使文档非常大),第二个向下和向右,但不是那么多。然后我尝试滚动到第二个div。
这在我的桌面浏览器上工作正常,但在我的手机上失败,它只是不滚动到正确的元素位置。当元素没有绝对定位时,同样的事情发生在我身上,顺便说一句。
我也尝试过使用$('html,body')。scrollTop / Left(有和没有动画),并得到基本相同的结果。同样当我做一些“嗅探”能力来查找'html'或'body'是否正确使用时(如此处所述 - http://www.zachstronaut.com/posts/2009/01/18/jquery-smooth-scroll-bugs.html)。所有人都给出了相同或最终的结果。
我猜测问题在于所有这些方法都不会滚动正确的元素,而且它与移动浏览器中的视觉和布局视口之间的区别有关,我听说过但可能不会理解得还不够解决这个问题(证明在于我没有...)。
帮助任何人?
谢谢!