jQuery 学习6 操纵元素显示效果的函数 |
本文标签:操纵,元素显示 复制代码 代码如下: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html> <head> <title>Collapsible 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> <legend>Collapsible List — Take 1</legend> <ul> <li>Item 1</li> <li>Item 2</li> <li> Item 3 <ul> <li>Item 3.1</li> <li> Item 3.2 <ul> <li>Item 3.2.1</li> <li>Item 3.2.2</li> <li>Item 3.2.3</li> </ul> </li> <li>Item 3.3</li> </ul> </li> <li> Item 4 <ul> <li>Item 4.1</li> <li> Item 4.2 <ul> <li>Item 4.2.1</li> <li>Item 4.2.2</li> </ul> </li> </ul> </li> <li>Item 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> <title>Collapsible 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> <legend>Collapsible List — Take 3</legend> <ul> <li>Item 1</li> <li>Item 2</li> <li> Item 3 <ul> <li>Item 3.1</li> <li> Item 3.2 <ul> <li>Item 3.2.1</li> <li>Item 3.2.2</li> <li>Item 3.2.3</li> </ul> </li> <li>Item 3.3</li> </ul> </li> <li> Item 4 <ul> <li>Item 4.1</li> <li> Item 4.2 <ul> <li>Item 4.2.1</li> <li>Item 4.2.2</li> </ul> </li> </ul> </li> <li>Item 5</li> </ul> </fieldset> </body> </html> |