CSS3animation动画为什么会出现抖动效果,怎么解决

html-css016

CSS3animation动画为什么会出现抖动效果,怎么解决,第1张

animation-fill-mode : forwards //设置对象状态为动画结束时的状态

animation-fill-mode

语法:

animation-fill-mode:none | forwards | backwards | both [ ,

none | forwards | backwards | both ]*

默认值:none

适用于:所有元素,包含伪对象:after和:before

继承性:无

取值:

none:

默认值。不设置对象动画之外的状态

forwards:

设置对象状态为动画结束时的状态

backwards:

设置对象状态为动画开始时的状态

both:

设置对象状态为动画结束或开始的状态

说明:

检索或设置对象动画时间之外的状态

如果提供多个属性值,以逗号进行分隔。

对应的脚本特性为animationFillMode。

这个是最简单的方法,

也可以侦听动画结束事件,给元素加个class类名,这个class定义的就是元素结束时的状态的css样式

<!doctype html>

<html>

<head>

<meta charset="utf-8">

<title>无标题文档</title>

<style type="text/css">

*{padding:0margin:0border:0}

.left{width:50%float:left

animation:myfirst 5s

-moz-animation:myfirst 5s/* Firefox */

-webkit-animation:myfirst 5s/* Safari and Chrome */

-o-animation:myfirst 5s/* Opera */

}

.right{width:50%float:left

animation:myfirst 5s

-moz-animation:myfirst 5s/* Firefox */

-webkit-animation:myfirst 5s/* Safari and Chrome */

-o-animation:myfirst 5s/* Opera */

animation-delay: 5s/* W3C 和 Opera */

-moz-animation-delay: 5s/* Firefox */

-webkit-animation-delay: 5s/* Safari 和 Chrome */

}

@keyframes myfirst

{

0% { opacity:0}

100% { opacity:1}

}

@-moz-keyframes myfirst /* Firefox */

{

0% { opacity:0}

100% { opacity:1}

}

@-webkit-keyframes myfirst /* Safari 和 Chrome */

{

0% { opacity:0}

100% { opacity:1}

}

@-o-keyframes myfirst /* Opera */

{

0% { opacity:0}

100% { opacity:1}

}

</style>

</head>

<body>

<div>

<div class="left"><img src="images/xxx.jpg"></div>

<div class="right">文字XXXXXXXXXXXXXXXXXXXXXXXX </div>

</div>

</body>

</html>

你在设置元素position:fixed的时候,给元素添加一个transform:translateZ(0)

目的是为了开启GPU硬件加速,提高性能和流畅的动画效果 也能解决你这个问题

你说你用transform的话 如果用到translate;把translate换成translate3d,在原来的参数后面加个Z方向的平移 0即可;