CSS 组合动画 - 第二个动画未按预期运行
CSS Combining Animations - Second Animation Not Behaving As Expected
我正在尝试向单个对象添加多个 CSS 关键帧动画。我有一个火箭图像,我想在屏幕上向右移动,然后旋转到右侧。第一部分,向右移动,工作正常。第二部分,旋转,似乎有效,但它不是在原地旋转,而是在向左移动的同时旋转。
这是目前的样子:
https://codeeverydamnday.com/projects/rocketblaster/index2.html
相关HTML:
<img id="rocketfire" src="images/rocketfireright.svg" />
相关CSS:
#rocketfire {
position: absolute;
top: 200px;
left: -320px;
height: 200px;
animation:
launch 4s ease-in-out 0.5s 1 forwards,
rightself 2s ease-in-out 4.5s 1 forwards;
}
@keyframes launch {
0% {transform: translateX(-320px);}
100% {transform: translateX(1050px);}
}
@keyframes rightself {
100% {transform: rotate(-90deg);}
}
我看过的每个教程都说了同样的话 — 只需用逗号分隔动画并添加您想要的属性,确保添加延迟,以便第二个动画在第一个动画之后才开始。使用“forwards”使对象保持在动画的结束状态。
我已经完成了所有这些,但无法弄清楚为什么旋转动画也会将对象移回左侧而不是原地旋转。我错过了什么吗?
如果你将动画rightself
改成这样就可以了:
@keyframes rightself {
100% {
transform: translateX(1050px) rotate(-90deg);
}
}
我认为动画无法保留状态,但我不知道为什么。
我正在尝试向单个对象添加多个 CSS 关键帧动画。我有一个火箭图像,我想在屏幕上向右移动,然后旋转到右侧。第一部分,向右移动,工作正常。第二部分,旋转,似乎有效,但它不是在原地旋转,而是在向左移动的同时旋转。
这是目前的样子:
https://codeeverydamnday.com/projects/rocketblaster/index2.html
相关HTML:
<img id="rocketfire" src="images/rocketfireright.svg" />
相关CSS:
#rocketfire {
position: absolute;
top: 200px;
left: -320px;
height: 200px;
animation:
launch 4s ease-in-out 0.5s 1 forwards,
rightself 2s ease-in-out 4.5s 1 forwards;
}
@keyframes launch {
0% {transform: translateX(-320px);}
100% {transform: translateX(1050px);}
}
@keyframes rightself {
100% {transform: rotate(-90deg);}
}
我看过的每个教程都说了同样的话 — 只需用逗号分隔动画并添加您想要的属性,确保添加延迟,以便第二个动画在第一个动画之后才开始。使用“forwards”使对象保持在动画的结束状态。
我已经完成了所有这些,但无法弄清楚为什么旋转动画也会将对象移回左侧而不是原地旋转。我错过了什么吗?
如果你将动画rightself
改成这样就可以了:
@keyframes rightself {
100% {
transform: translateX(1050px) rotate(-90deg);
}
}
我认为动画无法保留状态,但我不知道为什么。