直到滚动停止在iOS(PhoneGap)之后才会呈现图像

时间:2014-09-09 02:57:49

标签: javascript ios css cordova

我正在开发适用于iOS的PhoneGap网络应用。

我有一个无限列表,当你向下滚动页面时,新的元素从服务器加载并添加到页面的底部。

添加到页面的每个元素都包含异步加载的图像。

但是,直到滚动停止后才会显示图像。这使得事情看起来很迟钝,即使它们不是 - 即直到我从设备上移开手指。

是否有人知道此问题的解决方法?

3 个答案:

答案 0 :(得分:0)

这是无法避免的。 webkit-gradient IOS上的图像渲染在具有实时优先级的专用US线程中执行。

https://news.ycombinator.com/item?id=3316383

答案 1 :(得分:0)

我在构建应用程序时注意到了同样的问题。 UI由许多图像组成,它只显示当前在屏幕上显示的内容,当您进行滚动时,其他所有内容在滚动完成之前都不会呈现。

对我有用的解决方案是在布局中的容器中添加overflow: auto;属性。当我添加它时,一切都会渲染,滚动时没有问题。

答案 2 :(得分:0)

This funky work around for safari will do the trick for you:

*:not(html) {
   -webkit-transform: translate3d(0, 0, 0);
}

This will add the translate property to all elements causing the IOS browser to render your off screen elements and give you a silky smooth native like feel. Remember to check your functionality as it can mess with positioning of some elements. If if does add them to the 'not' list e.g:

*not(html, button, img...