当新元素变得可见时,转换过渡口吃

时间:2015-05-07 21:12:11

标签: javascript android html css cordova

我在Phonegap应用程序中有一个翻转动画,第一次另一边变得可见时会出现口吃,就在它首先变得可见的框架上。它不会发生在任何后续翻转中,除非我将该div设置为display: none并返回(切换到应用程序的另一部分)

请参阅http://codepen.io/MalikDrako/pen/KpVPdy了解会发生什么的示例。我正在使用android 5.0测试Galaxy S5并使用transition: transform来设置动画

我的猜测是它不会在背面加载图像,直到它们变得可见,有没有办法确保它们被加载?

编辑:我查看了chrome Dev工具中的时间轴,当口吃发生时,CompositorTileWorker中有一堆Rasterize Paint事件,当口吃不发生时不存在

Edit2:我尝试删除主要背景和翻转控件(两者都共享)的所有内容,但仍然发生了。是否可以在GPU上保留这些图像的两个光栅化副本,并在它们不显示时卸载它们?图像是SVG。

编辑3:我已将其缩小为主要背景svg,将其设置为display: none(主要)修复了口吃。我在该设备上以300px x 300px显示它。你可以在https://www.dropbox.com/s/5tro0al491s4s4w/hex.svg?dl=0

看到svg

Edit4:由于双方的背景相同,我将其移至共享元素。这减少了口吃几乎不可察觉,但现在第一次在应用程序运行时翻转,动画滞后并跳转到(几乎)结束。任何后续翻转直到应用程序重新启动都很好(如果自上次翻转后div已经可见)或者几乎没有可察觉的口吃(如果div已设置为显示:无)

0 个答案:

没有答案