1

我有一个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现在,当用户将鼠标悬停在 button 上时,我希望 jQuery 淡入并显示隐藏的元素.morecats。我还想要一个单独的 div.bg来淡入/出现。

这怎么可能实现?

4

2 回答 2

2

实现此目的的一种方法是通过jQuery 悬停功能。官方的例子甚至有一个淡入淡出的例子,你可以看看。

$(".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/

于 2012-12-24T05:41:40.147 回答
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.
);
于 2012-12-24T06:20:11.650 回答