jQuery隐藏li元素,然后淡入按钮悬停

时间:2012-12-24 05:35:59

标签: javascript jquery

我有一个标准ul列表,其中包含五个li元素。在第三个元素之后,我在列表中放置了一个带有CSS类.morecats的按钮。

<ul>
    <li>1</li>
    <li>2</li>
    <li>3</li>
    <button class="morecats">+</button>
    <li>4</li>
    <li>5</li>
</ul>

使用jQuery,我隐藏了前三个li元素:

$('ul')
  .find('li:gt(3)')
  .hide()
  .end();

现在,当用户将鼠标悬停在按钮li上时,我希望jQuery淡入并显示隐藏的.morecats元素。我还想要一个名为.bg的单独div来淡入/显示。

如何实现这一目标?

2 个答案:

答案 0 :(得分:2)

实现这一目标的一种方法是通过jQuery hover function。官方的例子甚至还有淡入淡出的例子,你可以看一下。

$(".morecats").hover(
    function(){   // When the hover begins
        $('li').slice(-2).fadeIn(500);
    }, 
    function(){   // When the hover ends
        $('li').slice(-2).fadeOut(500);
    } 
);

切片获取最后两个li元素。

Jsfiddle:http://jsfiddle.net/wDLVQ/2/

答案 1 :(得分:1)

您可以通过prevAll() jQuery函数实现它:

您可以在此处阅读更多内容 - http://api.jquery.com/prevAll/

$('ul')
.find('li:lt(3)')
.hide();           //<----------------------------first 3 li hidden

$(".morecats").hover(
    function(){
        $(this).prevAll('li').fadeIn(500); // when hover the button fadeIn the 
        $('.bg').fadeIn(500);              // hidden li and .bg div.
    },
    function(){ 
        $(this).prevAll('li').fadeOut(500); // used it to fadeout the first 3
    }                                       // lis again.
);