有没有一种简单的方法可以使用 jQuery 淡入 css :hover 背景?

Posted

技术标签:

【中文标题】有没有一种简单的方法可以使用 jQuery 淡入 css :hover 背景?【英文标题】:Is there an easy way to use jQuery to fade in a css :hover background? 【发布时间】:2011-06-16 08:11:26 【问题描述】:

我有一个带有 CSS 的 IMG,它使用 :hover 来显示背景。有没有一种简单的方法可以使用 jQuery 淡入背景而不是立即出现?

我当前的代码是:

html: <img id="home-logo" src="path/logo-home.png">`
CSS: #home-logo:hover  background: url(path/logo-back.png) right bottom no-repeat;

【问题讨论】:

是的。将背景放在不同的元素上并淡入该元素。任何浏览器或 javascript 库都不支持背景图像不透明度。 感谢您的评论/想法。我会玩弄这个概念。但是问题:当我将鼠标悬停在它上面时,我可以让它淡入和淡出,但是我如何让它加载透明并在悬停时淡入? 想通了。感谢您的帮助,您的建议有所帮助。 【参考方案1】:

是的!!!你可以用这个...

$('#home-logo').hover(function()
  $(this).fadeIn('slow', function() 
  //do something  
  );
 );

有关更多信息,您应该查看本教程。fadeIn

【讨论】:

【参考方案2】:

也许你需要淡化你的不透明度,在这种情况下你可以使用 fadeTo 方法。 第一个参数是持续时间或速度,第二个参数是不透明度值。

查询代码:

    $('#home-logo').hover(
    function()
      $(this).fadeTo('slow',0.2);
    ,
    function()
      $(this).fadeTo('slow', 1.0);
    );

HTML 代码:

<img id="home-logo" src="path/logo-home.png">

DEMO

【讨论】:

谢谢。我玩了一些。这对淡化图像非常有效,但不幸的是,背景却不是这样。【参考方案3】:

我想通了,发现最好的方法是使用两张图片而不是背景:

HTML:
    <img id="home-link" src="path/logo.gif"><img id="home-fade" src="path/logo-fade.gif">

CSS:
    #home-link  cursor:pointer; 
    #home-fade  display:none; 

JS:
    $(document.body).hover(function () 
          $("#home-fade").fadeIn('slow');
        ,function()
          $("#home-fade").fadeOut('slow');
        );

【讨论】:

以上是关于有没有一种简单的方法可以使用 jQuery 淡入 css :hover 背景?的主要内容,如果未能解决你的问题,请参考以下文章

jQuery使用参数淡入淡出功能

如何在不使用 setInterval 的情况下淡入文本?有没有 CSS 方法可以做到这一点?

使用 jQuery 动画制作具有 200 毫秒交叉淡入淡出的 img 切换源?

jQuery 效果 – 淡入淡出

如何使用 jQuery 制作一个简单的淡入/淡出面板?

jquery悬停图像淡入淡出交换