【 tulaoshi.com - Web开发 】
代码如下:
!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"
html
head
titleCollapsible List Take 1/title
link rel="stylesheet" type="text/css" href="../common.css"
script type="text/javascript"
src="../scripts/jquery-1.2.1.js"/script
script type="text/javascript"
$(function(){
$('li:has(ul)')
.click(function(event){
if (this == event.target) {
if ($(this).children().is(':hidden')) {
$(this)
.css('list-style-image','url(minus.gif)')
.children().show();
}
else {
$(this)
.css('list-style-image','url(plus.gif)')
.children().hide();
}
}
return false;
})
.css('cursor','pointer')
.click();
$('li:not(:has(ul))').css({
cursor: 'default',
'list-style-image':'none'
});
});
/script
style
fieldset { width: 320px }
/style
/head
body
fieldset
legendCollapsible List Take 1/legend
ul
liItem 1/li
liItem 2/li
li
Item 3
ul
liItem 3.1/li
li
Item 3.2
ul
liItem 3.2.1/li
liItem 3.2.2/li
liItem 3.2.3/li
/ul
/li
liItem 3.3/li
/ul
/li
li
Item 4
ul
liItem 4.1/li
li
Item 4.2
ul
liItem 4.2.1/li
liItem 4.2.2/li
/ul
/li
/ul
/li
liItem 5/li
/ul
/fieldset
/body
/html
上面实现列表的折叠已经很简单了,但jQuery提供了一个切换元素状态的函数toggle()。将上面红色字体的代码改为下面的代码,同样可以实现上述功能:
$(this).children().toggle();
$(this).css('list-style-image',
($(this).children().is(':hidden')) ?
'url(plus.gif)' : 'url(minus.gif)');
}
以上三个函数show()、hide()、toggle()在带参数的情况下可以实现元素逐渐的显示和隐藏
hide(speed,callback)
show(speed,callback)
toggle(speed,callback)
speed:可为数字或字符串,把效果的持续时间(可选)指定为毫秒数或预定义的字符串之一:slow、normal或fast。如果省略,就不产生动画并立即在显示屏上显示元素。
callback:回调函数(可选),在动画完成时调用。没有参数传递给这个函数,但函数上下文(this)被设置为以动画隐藏的元素。
动画效果的可折叠列表
代码如下:
!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"
html
head
titleCollapsible List Take 3/title
link rel="stylesheet" type="text/css" href="../common.css"
script type="text/javascript"
src="../scripts/jquery-1.2.1.js"/script
script type="text/javascript"
$(function(){
$('li:has(ul)')
.click(function(event){
if (this == event.target) {
$(this).css('list-style-image',
(!$(this).children().is(':hidden')) ?
'url(plus.gif)' : 'url(minus.gif)');
$(this).children().toggle('slow');
}
return false;
})
.css({cursor:'pointer',
'list-style-image':'url(plus.gif)'})
.children().hide();
$('li:not(:has(ul))').css({
cursor: 'default',
'list-style-image':'none'
});
});
/script
style
fieldset { width: 320px }
/style
/head
body
fieldset
legendCollapsible List Take 3/legend
ul
liItem 1/li
liItem 2/li
li
Item 3
ul
liItem 3.1/li
li
Item 3.2
ul
liItem 3.2.1/li
liItem 3.2.2/li
liItem 3.2.3/li
/ul
/li
liItem 3.3/li
/ul
/li
li
Item 4
ul
liItem 4.1/li
li
Item 4.2
ul
liItem 4.2.1/li
liItem 4.2.2/li
/ul
/li
/ul
/li
liItem 5/li
/ul
/fieldset
/body
/html