0

我的问题是,我只为心脏设置动画 + - 宽度、高度和左上角,但它不会停止动画,它会加倍,如果我关闭并再次打开,舔每一步将执行两次,如果关闭三次,则执行三次很快。

令人讨厌,因为我之前成功使用了 .stop(true, false) 但没有使用此动画,我尝试将所有 -= 和 += 替换为居中的容器 div 中的绝对值(如左上角是方向变化不同)但没有解决它。

还尝试使用正在运行的变量并将其设置为 false 和 .clearQueue()。也将 $('#Heart') 作为变量并始终调用它,但问题仍然存在。如果有人能指出我为什么会出现这种行为,我会非常感激。

function opened() {
    var Heart = $('#Heart');
    if (Pacemaker === 3) {
        $('#Heart').fadeOut(100, function () {
            $('#Div').fadeIn(100);
            Runner = false;
        });
    }
    if (Runner === true && Pacemaker < 3) {
        Heart.animate({width: '170px', height: '142px', left: '10px', top: '+=10px'}, 600,     function () {
            console.log('still');
            Heart.animate({width: '210px', height: '182px', left: '0px', top: '-=10px'}, 600, function () {
                console.log('still');
                Heart.animate({width: '170px', height: '142px', left: '10px', top: '+=10px'}, 600, function () {
                    console.log('still');
                    Heart.animate({width: '210px', height: '182px', left: '0px', top: '-=10px'}, 600, function () {
                        console.log('still');
                        Pacemaker++;
                        /*$('#Heart').stop(true, false); tried also putting it here*/

                        opened();        
                    });       
                });     
            });       
        });
    }
}

//------------------------------------------------------------------------------

function closed() {
    $('#Heart').stop(true, false).css({display : 'block' });
    $('#Heart').clearQueue();
    Pacemaker = 0;   

}
4

0 回答 0