Javascript 动画正在进行时,在同一元素上激发jquery动画

Javascript 动画正在进行时,在同一元素上激发jquery动画,javascript,jquery,css,html,Javascript,Jquery,Css,Html,我有两个带有以下代码的按钮: $('#btn1').on('click',function() { $('#div1').animate({left:500},1000); }); $('#btn2').on('click',function() { $('#div1').animate({left:0},1000); }); 我希望能够在btn1事件仍在进行时触发btn2事件。当我快速点击两个按钮时,当前发生的情况是,例如,我点击btn1,div在实际触发btn2事件之前向左:

我有两个带有以下代码的按钮:

$('#btn1').on('click',function() {
   $('#div1').animate({left:500},1000);
});

$('#btn2').on('click',function() {
   $('#div1').animate({left:0},1000);
});
我希望能够在btn1事件仍在进行时触发btn2事件。当我快速点击两个按钮时,当前发生的情况是,例如,我点击btn1,div在实际触发btn2事件之前向左:500走并完成

有什么想法吗?

您希望在启动新动画之前查看所有动画。

您希望在启动新动画之前查看所有动画。

您必须使用stop()函数来完成此操作。按如下方式设计两个事件处理程序:

$('#btn1').on('click',function() {
  $('#div1').stop().animate({left:500},1000);
});

$('#btn2').on('click',function() {
  $('#div1').stop()animate({left:0},1000);
});
这将停止div(如果当前正在设置动画),并在其上启动新动画。

您必须使用stop()函数来完成此操作。按如下方式设计两个事件处理程序:

$('#btn1').on('click',function() {
  $('#div1').stop().animate({left:500},1000);
});

$('#btn2').on('click',function() {
  $('#div1').stop()animate({left:0},1000);
});

这将停止当前正在设置动画的div,并在其上启动新动画。

是否正在查找
.stop()
?请参阅:您正在查找
.stop()
?见: