微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

javascript – 如何使用元素动画的jQuery承诺?

如何在2个动画完成后调用回调?动画应该同时发生,但在两者完成后,应该运行回调.

到目前为止我有这个:

$element1.animate({top: element2_pos}, 200);
$element2.animate({top: element1_pos}, 200, function(){ /* callback code */ });

如何将其与promise或deferred对象组合?是否有一种聪明的方式加入这两个动画?

解决方法:

你可以使用$.when()

提供一种基于零个或多个对象执行回调函数方法,通常是表示异步事件的Deferred对象.

var animDiv1 = $("div.div1").animate({ left: 200 }, 1000),
  animDiv2 = $("div.div2").animate({ left: 200 }, 2000);

$.when(animDiv1, animDiv2).done(function() {
  console.log("done");
})
div {
  width: 50px;
  height: 50px;
  position: absolute;
  left: 0px;
  background-color: red
}
.div1 { top: 0 }
.div2 { top: 50px }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="div1"></div>
<div class="div2"></div>

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐