4

我发现了一些与滚动和渲染以及 javascript 相关的奇怪行为。

如何实现:

在任何足够长的网页上滚动。开始快速滚动(翻页)。然后松开触摸。现在,由于动量,页面仍在滚动。点击屏幕停止滚动。

这使浏览器进入一个奇怪的模式。

在 nexus 上,它的行为如下:屏幕上显示的内容的更新停止,您仍然可以单击链接并转到它们应该到达的位置,但屏幕上显示的内容保持不变。

如果您然后稍微滚动屏幕,屏幕的更新将再次启动,并且会显示您一直希望看到的内容。

在我尝试过的所有带有 HTC Sense 的手机上(Hero、Desire、Legend)都会发生这种情况:

屏幕的更新就像在 nexus 上一样停止,但任何 javascript 的执行也停止了。如果您单击将您带到另一个页面的链接,但事情会再次恢复正常。

我测试这个的方法是我创建了一个这样的页面:

http://pastebin.ca/1881620

changeColor 函数只是将“容器”的背景颜色更改为几种不同的颜色。

因此,在错误发生之前,当您单击任何链接时,颜色会发生变化。

错误发生后:

Nexus 1:当您点击链接时,什么也没有发生(除了“橙色链接选择圆角框的东西”显示为好像链接被点击)。然后当你滚动升位时。您可以看到颜色发生了变化(与我单击链接的次数相同)。

On Sense:链接将我带到 google.com

有没有其他人注意到这个问题?有没有办法解决它?

谢谢。

4

1 回答 1

0

您可以尝试使用操纵浏览器滚动过程的插件,例如iScroll4

iScroll4 让我们做一些很酷的事情(比如固定页眉/页脚),但它在一些较旧/更糟糕的 Android 手机中确实存在一些性能问题......

我不能保证它会解决你的问题,它会是最后的手段,但如果你对 iScroll 的其他功能感兴趣,或者如果你遇到了死胡同,它可能值得一试你的错误,它是你的应用程序的障碍。

于 2012-03-15T18:42:43.177 回答