我有一个标准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来淡入/显示。
如何实现这一目标?
答案 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.
);