我的问题是,我只为心脏设置动画 + - 宽度、高度和左上角,但它不会停止动画,它会加倍,如果我关闭并再次打开,舔每一步将执行两次,如果关闭三次,则执行三次很快。
令人讨厌,因为我之前成功使用了 .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;
}