2010-07-07 88 views
0

我有2个不同信息的头元素,每个元素都希望在悬停事件中淡入/淡出。jQuery fadeTo()然后通过显示来隐藏元素:none?

我可以做淡入/淡出没问题,但我真的希望元素被隐藏,即使用“display:none;” 。之后便淡出,然后把他们带回来,一旦他们在淡出

我这已经是淡出:

$(document).ready(function() 
{ 

    $("#header").hover 
    (function() 
    { 
    $(this).fadeTo("fast", 0); 
    $('#header_hover').fadeTo("fast", 1.0);  
    }, 
    function() 
    { 
    $(this).fadeTo("fast", 1.0); 
    $('#header_hover').fadeTo("fast", 0); '5'});  

    }); 

}); 

伟大的工程,但尽管这改变了每个项目的“不透明度”他们仍然一起存在于代码中,所以它就好像我有两个我不想要的头。

仅供参考我使用这个CSS显示其他落后一个标题:

#header, #header_hover 
{ 
height:260px; 
padding:0; 
margin:20px 10px; 
position:absolute; 
top:20px; 
} 

#header 
{ 
background:red; 
z-index:10; 
} 
#header_hover 
{ 
background:blue; 
z-index:5; 
} 

我已经尝试了很多jQuery的不同的解决方案,没有奏效。在最坏的情况下,我会看到一个疯狂的表情,但另一个却永远隐藏起来?

回答

0

您只需在淡入之前(通常)显示#header_hover,并在淡出(使用回调)后隐藏#header

$("#header").hover(function() { 
    $(this).fadeTo("fast", 0); 
    $('#header_hover').show(); 
    $('#header_hover').fadeTo("fast", 1.0);  
}, function() { 
    $(this).fadeTo("fast", 1.0); 
    $('#header_hover').fadeTo("fast", 0, function() { 
     $(this).hide(); 
    });    
}); 

试试吧here(注:红色div有含量少,这样你就可以看到效果)。

+0

您的功能与fadein和fadeout功能相同 – RJD22 2010-07-07 14:16:53

+0

您看过他的代码吗?我只是修改他的代码,给他他需要的功能。我会用fadeIn和fadeOut,但这不是他问题的要点。 – melhosseiny 2010-07-07 14:21:18

+0

这是因为他的代码清楚地表明他只是想淡入淡出,因为他从0(不可见)消失到1.0(完全可见)。那么为什么不给他最佳实践。 – RJD22 2010-07-07 14:25:52

0

使用animate功能:

$(this).animate({opacity: 'toggle'}, 'fast'); 

还是fadeInfadeOut功能:

$(this).fadeOut('fast'); 

是这样的:

$(document).ready(function() 
{ 

    $("#header").hover 
    (function() 
    { 
    $(this).fadeOut("fast"); 
    $('#header_hover').fadeIn("fast");  
    }, 
    function() 
    { 
    $(this).fadeIn("fast"); 
    $('#header_hover').fadeOut("fast"); '5'});  

    }); 

}); 
0
$(element).fadeOut("slow").hide(); 

AFAIK执行流程将防止在“fadeOut”结束之前“隐藏”执行。

+2

fadeout不需要隐藏功能,因为它的内置版本 – RJD22 2010-07-07 14:16:19