javascript - 如何在 jQuery 的一些迭代后重播 css3 转换动画

标签 javascript jquery css css-animations

我的图片上有这个动画:

<div class="image_for_sping">
    <img src="/anyimage.png">
</div>

图像具有由 jQuery 添加的样式属性的地方:

animation: spin360 0.1s linear 0s 20 forwards paused, spin360 0.25s linear 2s 8 forwards, spin360 0.5s linear 4s 4 forwards, spin360 1s linear 6s 2 forwards, spin90 2s linear 8s 1 forwards

这个动画的CSS:

@-moz-keyframes spin360 { 100% { -moz-transform: rotate(-360deg); } }
@-webkit-keyframes spin360 { 100% { -webkit-transform: rotate(-360deg); } }
@keyframes spin360 { 100% { transform:rotate(-360deg); } }
@-moz-keyframes spin90 { 100% { -moz-transform: rotate(-90deg); } }
@-webkit-keyframes spin90 { 100% { -webkit-transform: rotate(-90deg); } }
@keyframes spin90 { 100% { -webkit-transform: rotate(-90deg); transform:rotate(-90deg); } }

如何在不重新加载页面的情况下通过 jQuery 再次播放此动画?

尝试示例:https://jsfiddle.net/rzqc2bsh/1/

最佳答案

要重播动画,您需要打开/关闭它,所以如果您这样做,您总是在添加之前删除它,然后使用 setTimeout 强制 重绘,否则无效。

$(document).ready(function() {
  $("#btn").click(function(e) {
    $('.box').css('animation', '');
    setTimeout(function() {
      $('.box').css('animation', 'spin360 0.1s linear 0s 20 forwards paused, spin360 0.25s linear 2s 8 forwards, spin360 0.5s linear 4s 4 forwards, spin360 1s linear 6s 2 forwards, spin90 2s linear 8s 1 forwards');
    }, 5)
  });
});
.box {
  width: 100px;
  height: 100px;
  background-color: red;
}

@-moz-keyframes spin360    { 100% { -moz-transform: rotate(-360deg); } }
@-webkit-keyframes spin360 { 100% { -webkit-transform: rotate(-360deg); } }
@keyframes spin360         { 100% { transform: rotate(-360deg); } }
@-moz-keyframes spin90     { 100% { -moz-transform: rotate(-90deg); } }
@-webkit-keyframes spin90  { 100% { -webkit-transform: rotate(-90deg); } }
@keyframes spin90          { 100% { transform: rotate(-90deg); } }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<body>
  <div class="box"></div>
  <input type="submit" id="btn" value="spin" />
</body>

关于javascript - 如何在 jQuery 的一些迭代后重播 css3 转换动画,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44736483/

相关文章:

javascript - 如何解析 JSON 响应中的第二个 HTML anchor 元素

javascript - 从文本框 jquery/javascript 数组中获取单个文本框值

html - 帮助使用不同比例的图像制作居中的列

javascript - 从 HTML 表格单元格中获取值

javascript - 使用匹配和正则表达式匹配某些字符串失败

javascript - 如何在单击元素时设置 contenteditable true

javascript - 使用 split 函数删除部分代码

javascript - Ng-if 在监视变量变为 false 时不隐藏元素

javascript - jQuery addClass 和 removeClass 事件对悬停功能有奇怪的影响

javascript - 如何通过 JavaScript 隐藏/显示 Tiles 中的 div?