1

我正在尝试将背景图像淡入我的列表项。我已经尝试了一切,但找不到它...

HTML:

<li id="een">
    <h1>Title</h1>
    <p id="text1">Text</p>
</li>

jQuery:

$('#een').mouseenter(function(){
    $('#een').css("background-image", "url(images/een.png)");
});
4

2 回答 2

2

您需要制作一个背景 img 元素,该元素在相对父级内绝对定位。

jsFiddle

这是我的意思的一个例子。

HTML注意我添加了一个 div 类li-background作为每个li. 这将由 CSS 编辑以在加载时不显示并绝对定位在其相对定位的 li 父级内。我还将其设置z-index为 -1,因此它不会显示在文本或 li 中的任何其他项目中,因此它是背景!

<ul>
    <li id="een">
        <div class="li-background"><img src="http://www.freenew.net/upload/pscreen/47/gradient-screensaver-32.jpg" /></div>
        <h1>Title</h1>
        <p id="text1">Text</p>
    </li>
    <li id="een">
        <div class="li-background"><img src="http://www.freenew.net/upload/pscreen/47/gradient-screensaver-32.jpg" /></div>
        <h1>Title2</h1>
        <p id="text1">Text2</p>
    </li>
    <li id="een">
        <div class="li-background"><img src="http://www.freenew.net/upload/pscreen/47/gradient-screensaver-32.jpg" /></div>
        <h1>Title3</h1>
        <p id="text1">Text3</p>
    </li>
    <li id="een">
        <div class="li-background"><img src="http://www.freenew.net/upload/pscreen/47/gradient-screensaver-32.jpg" /></div>
        <h1>Title4</h1>
        <p id="text1">Text4</p>
    </li>
</ul>

CSS

ul li { position: relative; }
ul li:hover { color: white; }
.li-background {
    display: none;
    height: 100%;
    left: 0;
    position: absolute;
    top: 0;
    width: 100%;
    z-index: -1;
}
.li-background img {
    height: 100%;
    width: 100%;
}

jQ 脚本

$("li").hover(function(eIn) {
        $(this).children(".li-background").stop().fadeIn();
    },
    function(eOut) {
        $(this).children(".li-background").stop().fadeOut();
    });
于 2012-11-01T20:43:58.963 回答
0

如果您真的想使用背景,您也可以使用switchClass 。像这样:

if ($('#testDiv').hasClass('class1'))
    $('#testDiv').switchClass("class1", "class2", 500);
else 
    $('#testDiv').switchClass("class2", "class1", 500);
于 2012-11-01T21:52:37.800 回答