采取一个非常基本的
CSS3动画规则,如下所示:
.dimension.fadeIn { -webkit-animation: fadeIn 0.7s; -webkit-animation-timing-function:ease-in-out; height:24px; } @-webkit-keyframes fadeIn { 0% { height:0; opacity: 0; } 30% { height:24px; /* the default row (tr) height */ opacity: 0; } 90% { opacity: 1; } }
除了MacBook Retina显示屏外,在每台显示器的Chrome中,动画都像丝绸一样流畅.当我们在MBP视网膜上进行尝试时,动画运行速度明显变慢,并且通常感觉很迟钝.
我在使用Transit时会遇到相同的情况(如果你有一个视网膜和一个外部显示器,试试运行Transit的演示(或任何CSS3动画?),比较两个屏幕,你会觉得它不像你那么平滑喜欢)
我们尝试通过设置-webkit-transform:translateZ(0)以及其他一些东西来使用GPU,例如-webkit-backface-visibility:hidden但无济于事.
解决方法
好吧,首先,我会改变第一个高度:0;到身高:0px; – 这可以防止旧浏览器上的错误.
第二次尝试添加will-change-property.这将使一些浏览器上的动画变得容易,我经历过.
除此之外我发现搞乱动画中的高度可能会产生很多问题.我宁愿选择以下的东西:
.dimension { transition: all .21s ease-in-out; will-change: opacity,height; height: 0px } .dimension.fadeIn { -webkit-animation: fadeIn 0.49s; -webkit-animation-timing-function:ease-in-out; -webkit-animation-delay : .21s; height:24px; } @-webkit-keyframes fadeIn { 0% { opacity: 0; } 90% { opacity: 1; } }
让我知道它是否有效:)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。