使用关键帧动画,对象的 colored颜色 在柔和的红色和蓝色之间循环.
- 当我将鼠标悬停在上面时,我希望动画暂停, colored颜色 变为黄色.
- 当我离开时,它应该会平滑地过渡到我悬停时的 colored颜色 ,并且关键帧 colored颜色 动画应该从它暂停的地方恢复.
最低限度的简单代码(Codepen demo):
#box {
width: 100px;
height: 100px;
background-color: #ffcccc;
animation: cycleColor 2s infinite linear;
transition: background-color .2s;
}
#box:hover {
animation-play-state: paused;
background-color: yellow;
}
@keyframes cycleColor {
0% {
background-color: #ffcccc;
}
50% {
background-color: #ccccff;
}
}
<div id='box'></div>
这通常不起作用,可能是因为关键帧动画不允许临时更改,即使在暂停时也是如此.
取而代之的是,我可以完全移除悬停时的动画,但它不能从暂停的地方顺利恢复.
我也try 了在悬停时添加和删除类,但这并没有解决这个问题.
有没有css或js解决方案?