【发布时间】:2012-08-26 20:50:33
【问题描述】:
我正在尝试滚动到滚动 DIV 中的特定位置。现在我正在使用带有 jQuery scrollTop() 函数的像素偏移,该函数在桌面浏览器上运行良好,但它不适用于除了谷歌的 Chrome Android 浏览器之外的 android 手机浏览器(没有 iOS 设备来测试它是否有效)。我找到的所有解决方案都是用于页面(窗口)滚动而不是在 DIV 中滚动,有人对我还可以使用什么来完成相同的任务有任何建议吗?
这是一个例子:
http://jsfiddle.net/aQpPc/
http://jsfiddle.net/aQpPc/embedded/result/
我在桌面浏览器中尝试过的其他方法:
document.getElementById('ID_of_element_in_a_DIV').scrollIntoView();
document.getElementById('ID_of_DIV').scrollTop = 200;
2013 年 3 月 11 日编辑:
这是一个已知的 android 浏览器问题:https://code.google.com/p/android/issues/detail?id=19625
错误报告中的一位用户提出了解决方法:
因为这个问题似乎只在溢出属性为 设置为滚动,可以先设置为'hidden',设置scrollTop 属性,然后将其重置回“滚动”(或自动)。滚动顶部 当元素被重新渲染时,属性似乎得到了尊重 滚动条。目前尚不清楚这是否有任何意想不到的副作用, 但是“它可以在我的机器上运行!”
【问题讨论】:
-
它确实适用于 IOS 的 safari 和 chrome
-
对于那些需要滚动整个文档的人(比如我),你可以使用 $("body").scrollTop(0),在 html 或 div 元素上尝试它不起作用跨度>
-
jsfiddle.net/aQpPc/embedded/result 我在三星 Galaxy S3 的内置浏览器中试过这个,效果很好。
-
嘿,很高兴看到这里引用了我的解决方法。 :) 这种解决方法似乎仍然是我发现让它以合理的方式工作的唯一方法。怀疑这会很快解决......
标签: javascript jquery html scroll mobile-browser