我正在制作一个适用于平板电脑和桌面电脑的 HTML5 杂志,使用了 swipe.js (http://swipejs.com)。一切似乎都很顺利,在一个 HTML 页面中,我已经将全屏列表元素并排设置。整个杂志是在一个静态 HTML 文件中构建的。我可以通过在平板电脑上滑动或在桌面版中使用按钮来滑动页面(考虑在 swipe.js 主页上的示例,但这里是全屏幻灯片)。这些页面放置在彼此相邻的位置,并具有屏幕的大小。
[ |0||1||2| .. |i-1||i||i+1| .. |n| ]
swipe.js使用translate3d() css函数结合css3实现过渡效果。在这种情况下,使用硬件渲染。
在桌面端(Chrome、Safari、FF)、iPad1和iPad2上,这产生了我所期望的平滑过渡效果,完美无缺!然而,在iPad3上,第一次进入(通过过渡)页面时,页面似乎会呈现出“缓慢”的状态。即使没有设置背景图片(只有颜色),过渡页面的“渲染”也被认为是有点“慢”的,页面是由“闪烁”的块构建起来的。
假设: 通过阅读相关主题后,我的假设是,这是因为浏览器仅呈现屏幕中可见的元素,并将缓存滑动的页面仅用于一段时间,之后清除缓存以控制内存管理。
我的问题:是否有一种方式可以控制屏幕外呈现和缓存,以便我可以强制预先呈现页面元素i-1、i+1(并清除所有其他页面元素的缓存),以加快我的过渡渲染?
注意:在StackOverflow的几个主题中,提到了css3过渡的“闪烁”。我已经实现了建议的CSS技巧,但不能解决我的问题。
-webkit-backface-visibility: hidden;
-webkit-transform:translate3d(0,0,0);
z-index
有帮助吗? - tim peterson