悬停时动画不透明度(jQuery)

Posted

技术标签:

【中文标题】悬停时动画不透明度(jQuery)【英文标题】:Animate opacity on hover (jQuery) 【发布时间】:2011-01-08 19:20:44 【问题描述】:

我们有一个链接:

<a href="#">
    Some text
    <span style="width: 50px; height: 50px; background: url(image.png); overflow: hidden; opacity: 0;"></span>
</a>

当链接悬停时,我们想通过一些动画来改变&lt;span&gt; 的不透明度。

我们该怎么做?

【问题讨论】:

【参考方案1】:

像这样:

$('a:has(span)').hover(
    function()  $('span', this).fadeIn(); ,
    function()  $('span', this).fadeOut(); 
);

【讨论】:

【参考方案2】:

另一种可能的解决方案:

$("a span").hover(function()
    $(this).stop().animate("opacity": 1);
,function()
    $(this).stop().animate("opacity": 0);
);

如果你使用fadeOut(),span会崩溃,这样就不会

编辑

这样更好:

$('a:has(span)').hover(function()  
    $('span', this).stop().animate("opacity": 1); 
,function()  
    $('span', this).stop().animate("opacity": 0); 
);

【讨论】:

您的选择器错误 - 他希望在链接悬停时出现效果,而不是跨度。不过,你说得有道理。【参考方案3】:

使用.fadeTo():

$( 'a' ).hover(
    function()  $( this ).fadeTo( 'fast', '1'); ,
    function()  $( this ).fadeTo( 'fast', '.4'); 
);

演示:见fiddle

【讨论】:

您的原始逻辑仍然传达。 +1

以上是关于悬停时动画不透明度(jQuery)的主要内容,如果未能解决你的问题,请参考以下文章

jQuery不透明度/淡入淡出动画只能使用一次

悬停后鼠标移出时反转不透明度动画

jQuery悬停动画然后在第二个处理程序问题中留下动画?

悬停动画淡入不透明度 0.5 悬停不透明度 1

如何在不影响内容不透明度(悬停时)的情况下为背景不透明度设置动画?

jQuery hover、mouseenter、mouseleave 状态(不透明动画)