iPhone WebKit CSS动画导致闪烁

Jak*_*apa 81 css iphone animation webkit flicker

这是iphone网站:http: //www.thevisionairegroup.com/projects/accessorizer/site/

点击"立即播放"后,您将进入游戏.枪支将滚动进入.您可以上下滚动钱包和配件.你可以看到,当你放手时它们就会突然到位.就像快照发生一样,会发生闪烁.我正在使用的唯一webkit动画是:

'-webkit-transition': 'none'

'-webkit-transition': 'all 0.2s ease-out'

'-webkit-transform': 'translate(XXpx, XXpx)'
Run Code Online (Sandbox Code Playgroud)

我根据是否要让它进行动画选择第一个或第二个过渡,并且变换是我移动物体的唯一方式.

但最大的问题是当您点击"匹配项目",然后点击"再次播放".你会看到枪支的动画效果,配件/钱包的整个背景都会变白.有人可以请你透露一些洞察力,为什么会发生这种情况?

小智 125

我补充说-webkit-backface-visiblity,这主要是有帮助的,但重新加载页面后我仍然有一个初始闪烁.当我添加时-webkit-perspective: 1000,没有任何闪烁.

-webkit-perspective: 1000;
-webkit-backface-visibility: hidden;
Run Code Online (Sandbox Code Playgroud)

  • 1000背后的魔力是什么?是否可以使用任何其他值(> 0)? (19认同)
  • 尝试转换链接元素时,我遇到了文本闪烁的问题.改变背面可见性改变了抗锯齿,使字体非常薄.通过使用-webkit-font-smoothing修复:subpixel-antialiased; (3认同)
  • @cYrus 我想我们永远不会知道 (2认同)

don*_*hoe 38

试试这个,希望它会有所帮助:

#game {
  -webkit-backface-visibility: hidden;
}
Run Code Online (Sandbox Code Playgroud)

  • 这在 Safari 默认情况下效果很好,但在独立模式下失败。你有什么想法? (2认同)

Bri*_*ous 17

body {-webkit-transform:translate3d(0,0,0);}
Run Code Online (Sandbox Code Playgroud)

  • 这对我有用。就我而言,“scale(1)”导致了闪烁。多谢 (2认同)

小智 12

我案子的实际答案就在这里.有人接近:-webkit-backface-visibility:hidden; 但真正的答案是-webkit-backface-visibility:hidden; 需要添加到 div.

  • 我认为通过将其添加到父级来修复我的闪烁.它实际上做了什么? (2认同)

fre*_*oma 11

我也遇到了"闪烁"CSS过渡的问题.有问题的动画是一个从屏幕外滑动的菜单,就在动画结束时,整个菜单闪烁/闪烁.

事实证明,这是由一个真正的iOS功能,即"点按高亮"引起的,由于某些原因在CSS动画完成后(即实际点击后的方式)启动,并突出显示整个菜单而不是仅仅元素被挖掘出来的.我通过完全禁用自来水亮点"固定"的问题,如所描述这里:

-webkit-tap-highlight-color: rgba(0,0,0,0);
Run Code Online (Sandbox Code Playgroud)


Rob*_*eca 5

迈克尔的答案 -webkit-backface-visibility: hidden;在我们遇到这个问题时起了作用.我们有translateZ(0px)我们的<body>标签,以防止在iOS 3.1.3及更早的IFRAME边界错误,它造成anims闪烁.添加-webkit-backface-visibility: hidden;到每个元素我们动画固定闪烁!生命保护.