Javascript .stop()会断开fadein,而黄色框不会';看起来不太合适

Javascript .stop()会断开fadein,而黄色框不会';看起来不太合适,javascript,jquery,Javascript,Jquery,如果我快速地将鼠标移到红色框上,并将光标停留在红色框上,它就会停止淡入并将操作分成两半。如果我根本不使用.stop()函数,jquery会尝试完成剩余的操作(我之前悬停并很快退出了该框),有人知道我应该在这里做什么吗?谢谢 $(document).ready(function(){ $(".box1").mouseenter(function(){ $(".box2").stop().fadeIn(); }); $(".box1").mouseleave(function

如果我快速地将鼠标移到红色框上,并将光标停留在红色框上,它就会停止淡入并将操作分成两半。如果我根本不使用.stop()函数,jquery会尝试完成剩余的操作(我之前悬停并很快退出了该框),有人知道我应该在这里做什么吗?谢谢

$(document).ready(function(){
  $(".box1").mouseenter(function(){

    $(".box2").stop().fadeIn();
  });
  $(".box1").mouseleave(function(){
    $(".box2").stop().fadeOut();
  });
});
$(document).ready(function(){
  $(".box1").mouseenter(function(){
    $('.box2').stop(true, false).fadeIn(3000);
  });
  $(".box1").mouseleave(function(){
    $('.box2').stop(true, false).fadeOut(3000);
  });
});

JQuery函数的工作方式似乎也类似于css转换,但转换无疑是更好的选择

$(document).ready(function(){
  $(".box1").mouseenter(function(){
    $(".box2").stop().fadeTo(1000, 1);
  });
  $(".box1").mouseleave(function(){
      $(".box2").stop().fadeTo(1000, 0);
  });
});
使用:


这不是对您的问题的直接回答,而是一种替代解决方案。您可以使用来代替jQuery进行淡入淡出

.box2
{
不透明度:0;
过渡:不透明度2s;
}
.box1:悬停+.box2{
不透明度:1;
过渡:不透明度2s;
}

参见

经过一些研究,我发现正确的答案是

true,false
(对于参数
clearQueue,jumpToEnd

$(document).ready(function(){
  $(".box1").mouseenter(function(){

    $(".box2").stop().fadeIn();
  });
  $(".box1").mouseleave(function(){
    $(".box2").stop().fadeOut();
  });
});
$(document).ready(function(){
  $(".box1").mouseenter(function(){
    $('.box2').stop(true, false).fadeIn(3000);
  });
  $(".box1").mouseleave(function(){
    $('.box2').stop(true, false).fadeOut(3000);
  });
});

很好,这几乎与
stop(true,true)
@PSL”相同,但不同之处在于.finish()也会导致所有排队动画的CSS属性跳转到它们的结束值。”;)如果可能的话,CSS仍然是第一选择。我的更新中的代码有问题吗?你能解释一下它有什么问题吗?对我来说,这两个版本的工作原理完全相同。您使用的是哪种浏览器?我看到了这种差异,但我问了您有关我的更新版本的问题。使用fadeTo功能进行了更新。你没看到吗?如果你在任何浏览器中打开开发工具,当你使用fadeIn或fadeOut时,你会看到不透明度正在改变。也许你不能改变你的投票,因为你昨天改变了很多。一天过后,您将能够再次更改它。第二个参数默认为false,因此您可以忽略它。