如何在悬停背景图像上应用FadeIn?

时间:2012-03-02 18:10:58

标签: jquery css hover fade

我已经将这个jquery用于几个应用程序,这些应用程序基本上可以通过淡入淡出过渡进行img交换。超级简单

$(document).ready(function() {
    $("img.a").hover(
    function() {
        $(this).stop().animate({
            "opacity": "0"
        }, "fast");
    }, function() {
        $(this).stop().animate({
            "opacity": "1"
        }, "fast");
    });

});​

使用HTML标记

<div id="leftBox" class="fadehover inline">
        <img src="images/leftTop.jpg" alt="" class="a" />
        <img src="images/leftBot.jpg" alt="" class="b" />
    </div>

CSS

/*fadeHover*/
div.fadehover {
    position: relative;
    }

img.a {
    position: absolute;
    left: 0;
    top: 0;
    z-index: 10;
        }

img.b {
    position: absolute;
    left: 0;
    top: 0;
    }

我想知道这是否可以应用于背景图像?

我正在尝试使用样式标签,但没有任何运气。

由于

3 个答案:

答案 0 :(得分:1)

我不一定按照你的方式去做,但可以通过同时动画另一个图像来实现。基于你的html,这应该这样做:

$("img.a").hover(
    function() {
        $(this).stop().animate({"opacity": "0"}, "fast");
        $("img.b").animate({"opacity": "1"}, "fast");
    },
    function() {
        $(this).stop().animate({"opacity": "1"}, "fast");
        $("img.b").animate({"opacity": "0"}, "fast");
    }
);​

jsFiddle example

答案 1 :(得分:0)

是的,这是可能的。您的JS代码也适用于该场景。只需稍微修改img.a css类。

img.a {
        display: block;
        background: url('your-image') no-repeat bottom left;
        padding: 0 0px 32px 200px;
}​

请注意,填充属性在此处起着至关重要的作用,在正确设置之前,您应该知道背景图像的高度和宽度,否则图像将无法完全显示。

演示:http://jsfiddle.net/V7wB6/

答案 2 :(得分:0)

我最终做了这个

$(document).ready(function(){
$('#home').mouseenter(function(){
$('.home_hover').fadeIn();
});

$('#home').mouseleave(function(){
$('.home_hover').fadeOut();
});
});

<div id="home">
<div class="home_normal">Home</div>
<div class="home_hover">Home</div>
</div> 

使用CSS

#home{
    position:relative;
    float: left;
    height: 25px;
    width: 88px;
    padding-top: 12px;
}
.home_normal{
    position:absolute;
    height: 25px;
    width: 88px;
    left: 0px;
    top: 0px;
    padding-top: 12px;
}
.home_hover{
    background-image:url(../images/menuBG-1.0.jpg);
    height: 25px;
    width: 88px;
    position:absolute;
    display: none;
    left: 0px;
    top: 0px;
    padding-top: 12px;
}