jquery - CSS3 动画不会在 removeClass 和 addClass 上再次播放,但会在 toggleClass 上改变

标签 jquery html css

如果我这样做:

jQuery('#test').removeClass("change");
console.log(jQuery('#test').attr("class"));
jQuery('#test').addClass("change");

CSS3 animate 绑定(bind)到此类仅在第一次显示。

.change {
  ...
  animation: redToTransparent 1s;
  animation-play-state: running;
  -webkit-animation: redToTransparent 1s;
  -webkit-animation-play-state: running;
}

实际代码: http://jsfiddle.net/adamovic/ato5akjx/

如果您多次点击按钮,动画不会重复。 为什么?

但它在使用 .toggleClass() 时每隔一秒播放一次。

测试的浏览器:Chrome、Firefox

最佳答案

看起来添加/删除类之间必须有延迟。

添加 100 毫秒的延迟似乎在 Chrome/FF/IE 中有效。

Updated Example

$('#mybutton').on('click', function () {
    $('#test').removeClass("change");
    setTimeout(function () {
        $('#test').addClass("change");
    }, 100);
});

如果您使用的是 jQueryUI,您还可以使用以下内容:

Example Here

$('#mybutton').on('click', function () {
    $('#test').removeClass("change").addClass("change", 100);
});

关于jquery - CSS3 动画不会在 removeClass 和 addClass 上再次播放,但会在 toggleClass 上改变,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28549264/

相关文章:

javascript - 在 Github 页面上使用 Slick 更改箭头的颜色

javascript - 动画 Canvas 看起来像电视噪音

jquery - 取消粘性标题的动画

html - 导航菜单的 z-index/border 相关问题

javascript - 为门户网站创建交互式 SVG map

javascript - 如何在angularJS中获取文件选择完成事件

html - 问题设计 Bootstrap 导航栏

javascript - 如何将之前加载的文件添加到 DropZone.js

javascript - 如何禁用 Kendo UI 中的默认 css?

html - 如何使用 Bootstrap 在英雄图像中制作文本中心