我有一个CSS动画,可以在Firefox和Chrome上正常工作但在Safari上抖动。
在此页面上: http://www.warhaftig.com/access-marketing.html
CSS:
/* ------------- msg -------*/
@-webkit-keyframes animate-selection {
from {
font-size: 2.7em;
color: #a6a6a6;
}
to {
font-size: 2.9em;
color: #fff;
}
}
@keyframes animate-selection {
from {
font-size: 2.7em;
color: #a6a6a6;
}
to {
font-size: 2.9em;
color: #fff;
}
}
.msg-marketing li.selected-msg a {
font-family: 'Neue Haas Unica W01 Medium It', arial, helvetica, sans-serif;
font-size: 2.9em;
letter-spacing: 0.02em;
font-weight: 500;
color: #fff;
line-height: 34px;
display: -webkit-box;
display: box;
width: 100%;
-webkit-animation: animate-selection 600ms ease-out; /* Safari 4.0 - 8.0 */
animation-name: animate-selection;
animation-duration: 600ms;
animation-delay: 0s;
animation-timing-function: ease-out;
}
我正在添加一个.selected-msg
类来设置li文本的样式。
答案 0 :(得分:0)
下面我们可以阅读CSS Triggers page在动画中使用font-size
的内容。
更改
font-size
会改变元素的几何形状。这意味着它可能会影响页面上其他元素的位置或大小,这两个元素都需要浏览器执行布局操作。完成这些布局操作后,需要绘制任何损坏的像素,然后必须将页面合成在一起。
清楚地表示,为了获得更好的表现,请避免在font-size
属性上进行动画制作。
在您的情况下,您可以使用transform
属性和scale()
函数来获得更平滑的结果,因为:
更改
transform
不会触发任何几何体更改或绘画,这非常好。这意味着可以在GPU的帮助下由合成器线程执行操作。
您可以在此fiddle上看到有关CSS的实例!只需点击Run
即可查看正在运行的效果。