CSS 关键帧旋转动画后旋转不动画
CSS rotate does not animate after keyframe rotate-animation
我想要 "chain" 2 css 个动画。
第一个在页面加载时播放,是一个 css 动画,将立方体旋转一定程度。作为第二个动画,我想在用户按下按钮时进一步旋转该立方体(添加 class 到立方体 onclick)。
问题是立方体-div 已经有来自第一个动画的旋转语句,所以当我添加 class(其中包含 transform:rotate)时它没有动画到新的旋转但立即跳到新的旋转度数。虽然我使用过渡。
我试图通过添加的 class('.rotate-further') 禁用动画,这样它不会中断第二次旋转但没有帮助
div {
width: 20px;
height: 20px;
background: blue;
animation: rotate 1s forwards;
}
.rotate-further {
transform: rotate(150deg);
animation: none;
}
@keyframes rotate {
0% {
-webkit-transform:rotate(0);
transform: rotate(0);
}
100% {
-webkit-transform: rotate(120deg);
transform:rotate(120deg);
}
}
我想要的结果是,当您使用 "transition: all .5s" 时,第二个旋转像往常一样动画。
window.setTimeout(function() {
document.querySelector('div').classList.add('rotate-further');
}, 1500)
div {
width: 20px;
height: 20px;
background: blue;
animation: rotate 1s forwards;
}
.rotate-further {
transform: rotate(150deg);
animation: none;
}
@keyframes rotate {
0% {
-webkit-transform: rotate(0);
transform: rotate(0);
}
100% {
-webkit-transform: rotate(120deg);
transform: rotate(120deg);
}
}
<div></div>
您可以像下面这样编辑您的代码:
window.setTimeout(function() {
document.querySelector('div').classList.add('rotate-further');
}, 1500)
div {
width: 20px;
height: 20px;
background: blue;
animation: rotate 1s;
transform: rotate(120deg);
transition:0.5s all
}
.rotate-further {
transform: rotate(150deg);
}
@keyframes rotate {
0% {
transform: rotate(0);
}
}
<div></div>
我想要 "chain" 2 css 个动画。 第一个在页面加载时播放,是一个 css 动画,将立方体旋转一定程度。作为第二个动画,我想在用户按下按钮时进一步旋转该立方体(添加 class 到立方体 onclick)。
问题是立方体-div 已经有来自第一个动画的旋转语句,所以当我添加 class(其中包含 transform:rotate)时它没有动画到新的旋转但立即跳到新的旋转度数。虽然我使用过渡。
我试图通过添加的 class('.rotate-further') 禁用动画,这样它不会中断第二次旋转但没有帮助
div {
width: 20px;
height: 20px;
background: blue;
animation: rotate 1s forwards;
}
.rotate-further {
transform: rotate(150deg);
animation: none;
}
@keyframes rotate {
0% {
-webkit-transform:rotate(0);
transform: rotate(0);
}
100% {
-webkit-transform: rotate(120deg);
transform:rotate(120deg);
}
}
我想要的结果是,当您使用 "transition: all .5s" 时,第二个旋转像往常一样动画。
window.setTimeout(function() {
document.querySelector('div').classList.add('rotate-further');
}, 1500)
div {
width: 20px;
height: 20px;
background: blue;
animation: rotate 1s forwards;
}
.rotate-further {
transform: rotate(150deg);
animation: none;
}
@keyframes rotate {
0% {
-webkit-transform: rotate(0);
transform: rotate(0);
}
100% {
-webkit-transform: rotate(120deg);
transform: rotate(120deg);
}
}
<div></div>
您可以像下面这样编辑您的代码:
window.setTimeout(function() {
document.querySelector('div').classList.add('rotate-further');
}, 1500)
div {
width: 20px;
height: 20px;
background: blue;
animation: rotate 1s;
transform: rotate(120deg);
transition:0.5s all
}
.rotate-further {
transform: rotate(150deg);
}
@keyframes rotate {
0% {
transform: rotate(0);
}
}
<div></div>