CSS transition force reflow

最近需要修改bootstrap的轮播插件,把隐藏slide从display:none改为visibility:hidden,修修补补改完后在Firefox可以运行,但是在Chrome就不行了。

发现两个浏览器用的不是相同的CSS,Firefox通过transition: 0.6s ease-in-out left;产生过渡动画,而Chrome是通过transition: transform 0.6s ease-in-out,这种方式不需要重新计算css属性,更流畅。

jsfiddle 问题demo

通过打印transform属性发现,display:block并且包含transition时,force reflow没有生效(没有到最终状态,即过渡动画结束时的状态)。

取消next的过渡效果,问题就解决了。demo

fore reflow的细节还是有待了解。

force reflow

http://semisignal.com/?p=5298

All you need to know about CSS Transitions

加载评论框需要翻墙