jQuery 动画开始
jQuery animate start
有没有办法在 jQuery 动画开始之前调用函数?我想要一个在可能很长的队列中的每个动画之前触发的方法。
我知道 .animate()
函数有 start
选项,但它是在动画添加到队列时调用的,而不是在它实际开始时调用的。
尝试利用 jQuery.Deferred()
var beforeStart = function beforeStart() {
$("body").append("<br>beforeStart", $.now());
return $.Deferred(function(dfd) {
setTimeout(dfd.resolve, 3000)
}).promise()
};
$.when(beforeStart())
.then(function() {
$("div").animate({
top:48
}, {
duration:3000,
start:function() {
$("body").append("<br>animation start", $.now());
}
});
})
div {
position:relative;
top:0px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js">
</script>
<div>abc</div>
有没有办法在 jQuery 动画开始之前调用函数?我想要一个在可能很长的队列中的每个动画之前触发的方法。
我知道 .animate()
函数有 start
选项,但它是在动画添加到队列时调用的,而不是在它实际开始时调用的。
尝试利用 jQuery.Deferred()
var beforeStart = function beforeStart() {
$("body").append("<br>beforeStart", $.now());
return $.Deferred(function(dfd) {
setTimeout(dfd.resolve, 3000)
}).promise()
};
$.when(beforeStart())
.then(function() {
$("div").animate({
top:48
}, {
duration:3000,
start:function() {
$("body").append("<br>animation start", $.now());
}
});
})
div {
position:relative;
top:0px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js">
</script>
<div>abc</div>