【发布时间】:2014-04-18 23:14:18
【问题描述】:
是否可以在一个元素上无限运行动画,但暂停该动画并发生另一个 CSS3 过渡/变换?
<div class="shake"></div>
例如,我有一个动画-
@-keyframes undulate {
0% { transform: translate(0,0); }
5% { transform: translate(0px,-10px); }
10% { transform: translate(0,0);}
15% { transform: translate(0px,-10px); }
20% { transform: translate(0,0);}
100% { transform: translate(0,0);}
}
我正在运行它的 div:
.shake {
display:block; position:absolute;
z-index:1000;
bottom:100px; left:50%;
margin-left:-40px;
width:80px; height:82px;
background: #336699;
cursor:pointer;
-webkit-animation:undulate 3s linear 0s infinite;
animation:undulate 3s linear 0s infinite;
}
.shake:hover {
-webkit-animation-play-state:paused;
animation-play-state:paused;
transform: translate(0px,3px);
-ms-transform:translate(0px,3px);
-webkit-transform:translate(0px,3px);
}
所以,我试图完成的是暂停动画undulate,然后在:hover 状态上运行transform 效果。一旦:hover状态结束,我希望它回到原来的无限动画。
【问题讨论】: