javascript - 为什么去掉类名后 CSS 动画还继续播放?

标签 javascript css internet-explorer

我正在尝试在我正在构建的应用程序中创建一个简单的“编辑模式”功能。 当应用处于编辑模式时,元素需要摆动。

我添加了一个 CSS 动画来实现摆动效果。动画使用变换来操纵方向和位置。

@keyframes wobble {
    0% { transform: translateY(2px) rotate(-2deg);}
    25% { transform: translateY(0px) rotate(0deg); }
    50% { transform: translateY(2px) rotate(2deg); }
    75% { transform: translateY(0px) rotate(0deg); }
    100% { transform: translateY(2px) rotate(-2deg); }
}

然后使用jQuery的toggleClass函数来触发动画。

$('button').on('click', function(){
    $('.items').toggleClass('editting');
})

这在 Chrome 中运行良好,但在 Internet Explorer 中,即使类被删除,动画仍会继续播放。

奇怪的是,额外点击按钮 2 次会停止 IE 中的动画。

参见 jsFiddle here

以前有没有人遇到过这种情况?

最佳答案

似乎 Internet Explorer 在删除类名时没有正确注册动画。

作为修复,我添加了一个 not-editting 类名来抵消 editting 动画。

通过将此功能与此 CSS 一起添加,我能够让 Internet Explorer 按预期运行。

.not-editting .item {
    animation: none;
}

查看此 updated jsFiddle

关于javascript - 为什么去掉类名后 CSS 动画还继续播放?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37840536/

相关文章:

javascript - 访问 Node 中的构造函数变量。 js

javascript - 在中间人中使用全局变量?即网站标题

javascript - 出现非常奇怪的 javascript 错误,并且此页面也拒绝在 Internet Explorer 7 或 8 中工作

javascript - 从 GUID 创建 ActiveXObject

javascript - 使用 Ajax 在 Gridview 更新后显示工具提示

javascript - Devo Nodejs-sdk 不发送数据

html - 调整窗口大小时重新定位 Div

javascript - 仅当某个 sibling 存在时如何修改 child ?

html - "Window size:x""Viewport size:x "出现在 MAC OS Chrome 和 Safari 浏览器中网页的打印叠加层中

internet-explorer - 使 IE 缓存资源但始终重新验证