Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
jQuery:将.delay()与.stop()一起使用会使.stop()变得无用。为什么?_Jquery_Delay_Fade - Fatal编程技术网

jQuery:将.delay()与.stop()一起使用会使.stop()变得无用。为什么?

jQuery:将.delay()与.stop()一起使用会使.stop()变得无用。为什么?,jquery,delay,fade,Jquery,Delay,Fade,我在做这样的事情 当您将鼠标悬停在任何文本框div上时,其中会出现一个小图标 我想阻止图标的淡入淡出效果在我不小心将div悬停时重复多次,你知道这有点烦人。我知道有一种方法可以防止这种情况的发生,那就是加上。停下来,它就像一个符咒 但是当我试图通过添加.delay500来延迟图标的出现时,.stop已变得毫无用处,当您在div之间不断移动光标时,淡入淡出效果会不断重复 我如何克服这个问题?我需要延迟和防止重复的褪色效果 谢谢请阅读以下内容: 这可能有助于: 据我所知,停止不能消除延迟。这是从

我在做这样的事情

当您将鼠标悬停在任何文本框div上时,其中会出现一个小图标

我想阻止图标的淡入淡出效果在我不小心将div悬停时重复多次,你知道这有点烦人。我知道有一种方法可以防止这种情况的发生,那就是加上。停下来,它就像一个符咒

但是当我试图通过添加.delay500来延迟图标的出现时,.stop已变得毫无用处,当您在div之间不断移动光标时,淡入淡出效果会不断重复

我如何克服这个问题?我需要延迟和防止重复的褪色效果

谢谢

请阅读以下内容:

这可能有助于:

据我所知,停止不能消除延迟。这是从 关于延误的文件

.delay方法最适合在排队的jQuery之间进行延迟 影响。因为它是有限的,例如,它不能提供一种 取消延迟-。延迟不能替代JavaScript的本机 setTimeout函数,可能更适合某些用途 案例

另外,如果我完全误解了你的问题,那么请让我知道:将删除此帖子。希望这有帮助,请阅读以下内容:

这可能有助于:

据我所知,停止不能消除延迟。这是从 关于延误的文件

.delay方法最适合在排队的jQuery之间进行延迟 影响。因为它是有限的,例如,它不能提供一种 取消延迟-。延迟不能替代JavaScript的本机 setTimeout函数,可能更适合某些用途 案例


另外,如果我完全误解了你的问题,那么请让我知道:将删除此帖子。希望这有帮助我想你可以试试这样的东西

var $prev;   
$(".codebox").hover( function() {
   var $icon = $(".icon", this);
   if ($prev) {
      $prev.stop(true)
           .delay(500).fadeOut('fast'); // so animation will be shown here as well
   }        
   $icon.delay(500).fadeIn("fast");
   $prev = $icon;
}, function() {
   $(".icon", this).delay(500).fadeOut("fast");
} );

关键是,当鼠标进入另一个块时,我们强制隐藏块的图标。我们不能在“离开”时执行此操作,因为当鼠标只离开一个区域而不移动到另一个区域时,它会打乱我们的动画,但如果我们将“上一个”图标存储在某种缓存中,我们可以在下一个“输入”事件中执行此操作

更新还有另一个,更多:


。。。若你们不介意的话,那个么当鼠标刚穿过那个块时,它就不会被高亮显示

我想你可以试试这样的东西

var $prev;   
$(".codebox").hover( function() {
   var $icon = $(".icon", this);
   if ($prev) {
      $prev.stop(true)
           .delay(500).fadeOut('fast'); // so animation will be shown here as well
   }        
   $icon.delay(500).fadeIn("fast");
   $prev = $icon;
}, function() {
   $(".icon", this).delay(500).fadeOut("fast");
} );

关键是,当鼠标进入另一个块时,我们强制隐藏块的图标。我们不能在“离开”时执行此操作,因为当鼠标只离开一个区域而不移动到另一个区域时,它会打乱我们的动画,但如果我们将“上一个”图标存储在某种缓存中,我们可以在下一个“输入”事件中执行此操作

更新还有另一个,更多:


。。。若你们不介意的话,那个么当鼠标刚穿过那个块时,它就不会被高亮显示

我在那把小提琴中没有看到任何悬停效果。是的,我必须在.icon元素中添加背景色:@Utkanos我已经用背景色更新了我的小提琴,因为David建议我在那把小提琴中没有看到任何悬停效果。是的,我必须为.icon元素添加背景色:@Utkanos我已经按照David的建议用背景色更新了我的小提琴图标不,我需要每次悬停div时都显示悬停效果。鼠标进入时淡入,鼠标离开时淡出。我误解了你的问题。更新了答案,希望有更有趣的东西。谢谢我做了一些与你的第二种方式完全相同的事情,但是使用了。动画。你的也行,不用客气+顺便提一下,我想问你一个问题;我必须认真考虑一下,而不仅仅是用谷歌搜索出一个文档页面。不,我需要每次悬停div时都显示悬停效果。鼠标进入时淡入,鼠标离开时淡出。我误解了你的问题。更新了答案,希望有更有趣的东西。谢谢我做了一些与你的第二种方式完全相同的事情,但是使用了。动画。你的也行,不用客气+顺便提一下,我想问你一个问题;我必须认真考虑一下,而不仅仅是用谷歌搜索出一个文档页面。