鼠标悬停后继续褪色

时间:2008-11-23 21:15:31

标签: jquery fade

我试图在鼠标悬停时淡出

并在mouseout上淡出:

  $("p.follow").mouseover(function(){
        $(this).fadeTo("slow", 1.00);
})
$("p.follow").mouseout(function(){
        $(this).fadeTo("fast", 0.50);
})

如果你去ryancoughlin.com并且在右边,如果你过去就会看到我的意思,它几乎就像被卡住并且不断消失。

有什么想法吗?

3 个答案:

答案 0 :(得分:4)

试试这个:

$("p.follow").hover(function()
   {
      $(this).stop().fadeTo("slow", 1.00);
   },
   function()
   {
      $(this).stop().fadeTo("fast", 0.50);
   });

两个主要区别:我使用jQuery hover事件来关联mouseover和mouseout事件处理程序,这样子元素不会导致令人困惑的行为,并且我使用stop()函数来阻止动画来自重叠并相互抵消。

答案 1 :(得分:1)

可能值得查看hoverintent插件,这基本上使用一点setTimeout,以便在用户快速移动鼠标穿过元素时不会激活它。易于编码,但值得一看。

答案 2 :(得分:0)

每次鼠标移动到元素上时,都会触发鼠标悬停事件。由于效果是按顺序执行的并且鼠标悬停频繁发生,因此你会得到许多必须“缓慢”执行的效果。

你可能想要的是悬停事件,它只对每个条目执行一次。