2009-10-30 77 views
3

http://www.izrada-weba.com/orso 在鼠标悬停的链接“NENATKRIVENA TERASA ...”子菜单和图像一起褪色。子菜单使用褪一些下载的脚本和图像上面使用我的代码正在消退:Jquery悬停淡入/淡出问题

$(document).ready(function() { 
    $("#slika1").hide(); 

    $("#test,#submenu2").hover(
     function() { 
     $("#slika1").fadeIn(); 
     }, 
     function() { 
     $("#slika1").fadeOut(); 
     } 
    );  
}); 

当鼠标移动到链接比图片淡出的,而当鼠标移动到子菜单图像淡出,比淡出再次.. 。我知道为什么是这样,但我不知道如何让它直接从链接移动到子菜单时不会消失。 有没有解决方案?

谢谢, 岛

回答

16

的功能停止()将停止指定的元素上的任何当前正在运行的动画。
尝试修改您的鼠标悬停功能:

$("#slika1").stop().fadeIn(); 


编辑:
似乎有与子菜单中的所有方式不褪色的问题(见ILE的评论)。这在我看来就像它的一个jQuery错误,但我不确定。也许有人可以插话并解释为什么会发生这种情况。
为了解决这个问题,使用fadeTo();它似乎产生期望的结果:

$(document).ready(function() { 
    $("#slika1").fadeTo(0,0); 

    $("#test,#submenu2").hover(
    function() { 
     $("#slika1").stop(true).fadeTo("normal",1); 
    }, 
    function() { 
     $("#slika1").fadeTo("normal",0); 
    } 
);  
}); 
+0

太棒了!谢谢,Jataro! –

+0

嗯,现在出现了新问题,当鼠标从链接快速移动到子菜单时,即使再次制作moseouver,图像也不会100%褪色,然后图像保持透明:/ –

+0

大感谢!你为我节省了很多时间:) –

1

与当​​中断fadeIn()不工作的问题是,因为fadeIn()只能如果元素是隐藏的。无论你称之为错误还是功能。要解决这个问题,您可以执行以下操作。

$("#mydiv").stop().hide().fadeIn(450);