我如何暂停和恢复这个动画,它可以用纯CSS完成吗
How can I pause and resume this animation and can it be done with pure CSS?
https://jsfiddle.net/w776Lq1u/
HTML
<div class="shake">
</div>
CSS
div {
width: 80px;
height: 80px;
background-color: gold;
}
.shake {
animation: shake 0.82s cubic-bezier(.36,.07,.19,.97) running;
transform: translate3d(0, 0, 0);
backface-visibility: hidden;
perspective: 1000px;
}
@keyframes shake {
10%, 90% {
transform: translate3d(-1px, 0, 0);
}
20%, 80% {
transform: translate3d(2px, 0, 0);
}
30%, 50%, 70% {
transform: translate3d(-4px, 0, 0);
}
40%, 60% {
transform: translate3d(4px, 0, 0);
}
}
我需要这个动画播放一次,暂停几秒钟,再次播放,并无限重复。
这可以使用纯CSS完成吗?
如果没有,最简单的JS/JQuery解决方案是什么?
谢谢。
您只需要加快动画速度,添加一个无动画帧并将动画设置为无限。
如下:
https://jsfiddle.net/w776Lq1u/5/
.shake {
animation: shake 1s cubic-bezier(.36,.07,.19,.97) running infinite;
transform: translate3d(0, 0, 0);
backface-visibility: hidden;
perspective: 1000px;
}
@keyframes shake {
0%, 100% {
transform: translate3d(0, 0, 0);
}
30%, 70% {
transform: translate3d(-1px, 0, 0);
}
35%, 65% {
transform: translate3d(2px, 0, 0);
}
40%, 50%, 60% {
transform: translate3d(-4px, 0, 0);
}
45%,55% {
transform: translate3d(4px, 0, 0);
}
}
以下是您的需求尝试。
我已经将关键帧百分比减少到一半,在剩下的50%时间里,块处于静止位置。动画时间也被命名为上一个值的两倍,以补偿关键帧的更改
您可以按照相同的概念将延迟调整为三分之一、四分之一或更多。
https://jsfiddle.net/w776Lq1u/4/
div {
width: 80px;
height: 80px;
background-color: gold;
}
.shake {
animation: shake 1.64s cubic-bezier(.36,.07,.19,.97) infinite;
transform: translate3d(0, 0, 0);
backface-visibility: hidden;
perspective: 1000px;
}
@keyframes shake {
5%, 45% {
transform: translate3d(-1px, 0, 0);
}
10%, 40% {
transform: translate3d(2px, 0, 0);
}
15%, 25%, 35% {
transform: translate3d(-4px, 0, 0);
}
20%, 30% {
transform: translate3d(4px, 0, 0);
}
50%{
transform: translate3d(0, 0, 0);
}
}
是的,这可以在CSS中完成。对于延迟,请延长持续时间,将translate3d(0,0,0)
包括在末尾,并调整关键帧百分比,使未平移的位置成为动画本身的一部分。然后使用animation-iteration-count: infinite;
,使整个过程重复。
相关文章:
- 如何使用css动画/javascript使具有背景图像的元素出现
- 如何使用css动画从中心增加边界线
- 点击CSS动画
- 只在滚动时播放循环css动画-滚动停止时停止
- CSS动画暂停并使用javascript播放
- 使用javascript可以设置css动画的当前百分比
- 使用Jquery和'的CSS动画;.css'
- CSS动画背景图像的过渡越来越暗
- 单击css动画后丢失的事件
- CSS动画-显示和隐藏面板
- 更改javascript中的css动画
- Css动画-setTimeout没有't应用打断动画的更改
- firefox中的CSS动画不起作用
- 如何只有点击时才有CSS动画,而不是页面加载
- css动画和jquery.load()在移动设备上断断续续
- 如何在 CSS 动画遇到屏幕边缘时停止它
- CSS 动画将恢复为原始状态
- 通过javascript触发CSS动画
- CSS 动画在元素隐藏时暂停
- CSS 动画中的非动画帧序列