警报箱先运行?

cor*_*ews 2 javascript jquery

我下面有一些jQuery/JS.首先要运行的是最后的警报框.

$(document).ready(function() {
    $("#id1 img , .msg").stop().animate(
        { width: '300px', height: '300px'}, 
        { duration: 'slow', easing: 'easeInSine' }).pause(3000);

    $(".msg").animate(
        { width: '50px', height: '50px' }, 
        { duration: 498, easing: 'easeOutSine' });
    $("#id1 img").animate(
        { width: '50px', height: '50px' }, 
        { duration: 500, easing: 'easeOutSine' });

    $("#id1 img , .msg").animate(
        { width: '300px',height: '300px'}, 
        { duration: 'slow', easing: 'easeInSine' }).pause(3000);

    alert('eh?');
});
Run Code Online (Sandbox Code Playgroud)

我有一个缓动插件.

如果我运行此警报将显示,然后第一个动画将在后台发生但不显示.它只会出现在最终尺寸上.

不应该在所有动画结束时运行警报吗?

任何人都可以解释为什么会这样吗?

the*_*ear 5

正如其他评论者所提到的,animate方法是非阻塞的,因此这是正确的行为.如果要在动画结束时调用警报,请查看animate方法的callback参数.文档说明:"动画完成时要执行的函数,对每个动画元素执行一次."

http://docs.jquery.com/Effects/animate