Don*_*n P 87 css css3 css-animations
如何以不同的速度播放两个CSS动画?
示例代码:
.image {
position: absolute;
top: 50%;
left: 50%;
width: 120px;
height: 120px;
margin:-60px 0 0 -60px;
-webkit-animation:spin 2s linear infinite;
-webkit-animation:scale 4s linear infinite;
}
@-webkit-keyframes spin {
100% {
transform: rotate(180deg);
}
}
@-webkit-keyframes scale {
100% {
transform: scaleX(2) scaleY(2);
}
}
Run Code Online (Sandbox Code Playgroud)
http://jsfiddle.net/Ugc5g/3388/ - 只播放一个动画(最后一个动画).
cri*_*ror 198
如果有新的人出现并捕获此线程,您可以使用逗号指定多个动画 - 每个动画都有自己的属性.
例:
animation: rotate 1s, spin 3s;
Run Code Online (Sandbox Code Playgroud)
rnr*_*ies 117
使用逗号,您可以指定多个动画,每个动画都有自己的属性.
例:
animation: rotate 1s, spin 3s;
Run Code Online (Sandbox Code Playgroud)
这里有两个问题:
#1
-webkit-animation:spin 2s linear infinite;
-webkit-animation:scale 4s linear infinite;
Run Code Online (Sandbox Code Playgroud)
第二行替换第一行.所以,没有效果.
#2
两个关键帧都适用于同一属性 transform
作为替代方案,您可以将图像分别包装<div>
并以不同的速度分别为每个图像设置动画.
http://jsfiddle.net/rnrlabs/x9cu53hp/
.scaler {
position: absolute;
top: 100%;
left: 50%;
width: 120px;
height: 120px;
margin:-60px 0 0 -60px;
animation: scale 4s infinite linear;
}
.spinner {
position: relative;
top: 150px;
animation: spin 2s infinite linear;
}
@keyframes spin {
100% {
transform: rotate(180deg);
}
}
@keyframes scale {
100% {
transform: scaleX(2) scaleY(2);
}
}
Run Code Online (Sandbox Code Playgroud)
<div class="spinner">
<img class="scaler" src="http://makeameme.org/media/templates/120/grumpy_cat.jpg" alt="" width="120" height="120">
<div>
Run Code Online (Sandbox Code Playgroud)
Ray*_*din 34
您确实可以同时运行多个动画,但您的示例有两个问题.首先,您使用的语法仅指定一个动画.第二种风格规则隐藏了第一种风格规则.您可以使用以下语法指定两个动画:
-webkit-animation-name: spin, scale
-webkit-animation-duration: 2s, 4s
Run Code Online (Sandbox Code Playgroud)
就像在这个小提琴里(由于下面解释的另一个问题,我用"淡入淡出"取代了"缩放"......跟我一起.):http://jsfiddle.net/rwaldin/fwk5bqt6/
其次,两个动画都会改变同一DOM元素的相同CSS属性(变换).我不相信你能做到这一点.您可以在不同的元素上指定两个动画,可能是图像和容器元素.只需将其中一个动画应用到容器中,就像在这个小提琴中一样:http://jsfiddle.net/rwaldin/fwk5bqt6/2/
您不能播放两个动画,因为该属性只能定义一次。相反,为什么不在第一个动画中包含第二个动画并调整关键帧以获得正确的时间呢?
.image {
position: absolute;
top: 50%;
left: 50%;
width: 120px;
height: 120px;
margin:-60px 0 0 -60px;
-webkit-animation:spin-scale 4s linear infinite;
}
@-webkit-keyframes spin-scale {
50%{
transform: rotate(360deg) scale(2);
}
100% {
transform: rotate(720deg) scale(1);
}
}
Run Code Online (Sandbox Code Playgroud)
<img class="image" src="http://makeameme.org/media/templates/120/grumpy_cat.jpg" alt="" width="120" height="120">
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
134477 次 |
最近记录: |