【发布时间】:2016-02-02 05:44:30
【问题描述】:
我想在一个函数中的两个动画都执行后触发一个函数。因此我选择了 jquery promise。但是 .done 函数会在“.block1”的第一个动画完成后立即触发,它不会等待“.block2”的动画。
HTML:
<div class="block1"></div>
<div class="block2"></div>
Javascript:
$(document).ready(function () {
doAnimation().done(function () {
alert('promise');
});
});
function doAnimation() {
var deferred = $.Deferred();
$('.block1').animate({
'marginLeft': '200px', 'width': '400px'
}, 2000, function () {
deferred.resolve();
});
$('.block2').animate({
'marginLeft': '0px', 'height': '400px'
}, 4500, function () {
deferred.resolve();
});
return deferred.promise();
}
CSS:
.block1,.block2
{
width:200px;
height:200px;
background:orange;
border:1px solid #ccc;
}
【问题讨论】:
-
我认为它的工作检查jsfiddle.net/BDhara/to6df3h5 ..done() 在动画完成后执行
-
你想在第二个 div 动画完成后提示信息吗?
标签: javascript jquery