javascript - JQuery 无法在 "forwards"css 动画后对 div 进行动画处理

标签 javascript jquery html css animation

查看示例 http://jsfiddle.net/nxsv5dgw/

Div 出现在舞台上,其上出现“向前”动画,JQuery 显然无法再对动画属性进行“动画”处理。

在该示例中,CSS 动画在框的宽度上播放。 OnClick 时,JQuery 动画尝试缩小框的宽度和高度,但仅更改高度。这是代码。

$(".a").click(function(e) {
  $(this).animate({
    width: "-=100px", // doesn't work after CSS animation
    height: "-=100px",
  }, 400); 
})

.a {
  background:red;
  position:absolute;
  height:500px;
  width:600px;
  animation: anim 0.4s forwards 1s;
}

@keyframes anim {
  0% {width:600px;}
  100% {width:500px;}
}

有什么办法可以避免这个问题吗?如果可能的话,我宁愿避免在 JQuery 中执行所有动画。

最佳答案

仅针对 Firefox 进行了测试,但可以正常工作 - 我已经调整了您的 Fiddle添加

$(this).css({
    "width": $(this).width(),
    "animation": "none"
});

到点击功能。这将宽度设置为实际宽度并覆盖动画,但我认为可能有更好的解决方案,因为它看起来像一个黑客。

更新 - 也适用于 Safari 和 IE。

关于javascript - JQuery 无法在 "forwards"css 动画后对 div 进行动画处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27642278/

相关文章:

javascript - webpack-dev-server 注入(inject) CSS webpack 没有

javascript - 创建表格单元格值数组 jQuery

javascript - 将 observables 的 observables 数组转换为 observables rxjs 数组

javascript - 单击其他按钮打开/关闭移动菜单

javascript - 禁用和启用轮播图标不适用于第一张和最后一张幻灯片之间的幻灯片 - Bootstrap

jquery,mouseEnter 和 slideToggle 问题

html - wordpress 集成 html 和 Css

javascript - AngularJS:从保留样式属性的字符串将 HTML 插入 View

javascript - sql.execute 不是 Node js 和 sql server 中的函数?

javascript - 使用javascript在客户端动态创建面包屑