我整个上午都在为这件事绞尽脑汁。我使用CSS3背景渐变在一个div上加上一个比例过渡,给人一种进度条效果的错觉。我只能让它在webkit浏览器上工作。所有其他的从一开始就显示最终结果。有什么想法吗?
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Untitled Document</title>
<style>
#grad1
{
position:absolute;
top:10px;
left:10px;
height:30px;
width:110px;
visibility:visible;
background: -webkit-linear-gradient(left, #EF8E76, #E54D26);
background: -moz-gradient(right, #EF8E76, #E54D26);
background: -o-linear-gradient(right, #EF8E76, #E54D26);
background: linear-gradient(to right, #EF8E76, #E54D26);
-webkit-animation: grow 10s linear 0s 1;
-moz-animation: grow 10s linear 0s 1;
-o-animation: grow 10s linear 0s 1;
-ms-animation: grow 10s linear 0s 1;
animation: grow 10s linear 0s 1;
}
@-webkit-keyframes grow {
0% { -webkit-transform: scale(0,1);-webkit-transform-origin: 0% 0%; visibility:hidden;}
10% { -webkit-transform: scale(0,1);-webkit-transform-origin: 0% 0%; visibility:visible;}
100% { -webkit-transform: scale(1,1);-webkit-transform-origin: 0% 0%; visibility:visible;}
}
@-moz-keyframes grow {
0% { -webkit-transform: scale(0,1);-moz-transform-origin: 0% 0%; visibility:hidden;}
10% { -webkit-transform: scale(0,1);-moz-transform-origin: 0% 0%; visibility:visible;}
100% { -webkit-transform: scale(1,1);-moz-transform-origin: 0% 0%; visibility:visible;}
}
@-o-keyframes grow {
0% { -webkit-transform: scale(0,1);-o-transform-origin: 0% 0%; visibility:hidden;}
10% { -webkit-transform: scale(0,1);-o-transform-origin: 0% 0%; visibility:visible;}
100% { -webkit-transform: scale(1,1);-o-transform-origin: 0% 0%; visibility:visible;}
}
@-ms-keyframes grow {
0% { -webkit-transform: scale(0,1);-ms-transform-origin: 0% 0%; visibility:hidden;}
10% { -webkit-transform: scale(0,1);-ms-transform-origin: 0% 0%; visibility:visible;}
100% { -webkit-transform: scale(1,1);-ms-transform-origin: 0% 0%; visibility:visible;}
}
@keyframes grow {
0% { -webkit-transform: scale(0,1);transform-origin: 0% 0%; visibility:hidden;}
10% { -webkit-transform: scale(0,1);transform-origin: 0% 0%; visibility:visible;}
100% { -webkit-transform: scale(1,1);transform-origin: 0% 0%; visibility:visible;}
}
</style>
</head>
<body>
<div id="grad1"></div>
</body>
</html>
正如@vals在评论中所说,您正在使用-webkit
前缀来表示不同动画声明中的所有transform
属性。
如果你将你的CSS更新为以下内容,它应该可以工作:
@-moz-keyframes grow {
0% {
-moz-transform: scale(0, 1);
-moz-transform-origin: 0% 0%;
visibility:hidden;
}
10% {
-moz-transform: scale(0, 1);
-moz-transform-origin: 0% 0%;
visibility:visible;
}
100% {
-moz-transform: scale(1, 1);
-moz-transform-origin: 0% 0%;
visibility:visible;
}
}
@-o-keyframes grow {
0% {
-o-transform: scale(0, 1);
-o-transform-origin: 0% 0%;
visibility:hidden;
}
10% {
-o-transform: scale(0, 1);
-o-transform-origin: 0% 0%;
visibility:visible;
}
100% {
-o-transform: scale(1, 1);
-o-transform-origin: 0% 0%;
visibility:visible;
}
}
@-ms-keyframes grow {
0% {
-ms-transform: scale(0, 1);
-ms-transform-origin: 0% 0%;
visibility:hidden;
}
10% {
-ms-transform: scale(0, 1);
-ms-transform-origin: 0% 0%;
visibility:visible;
}
100% {
-ms-transform: scale(1, 1);
-ms-transform-origin: 0% 0%;
visibility:visible;
}
}
@keyframes grow {
0% {
transform: scale(0, 1);
transform-origin: 0% 0%;
visibility:hidden;
}
10% {
transform: scale(0, 1);
transform-origin: 0% 0%;
visibility:visible;
}
100% {
transform: scale(1, 1);
transform-origin: 0% 0%;
visibility:visible;
}
}
注意:如果你不改变你的动画中的transform-origin
值,你应该删除它们