jQuery 学习6 操纵元素显示效果的函数


Posted in Javascript onFebruary 07, 2010
<!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>
Javascript 相关文章推荐
Javascript 实现TreeView CheckBox全选效果
Jan 11 Javascript
chrome原生方法之数组
Nov 30 Javascript
flash+jQuery实现可关闭及重复播放的压顶广告
Apr 15 Javascript
jquery实现兼容IE8的异步上传文件
Jun 15 Javascript
JavaScript实现非常简单实用的下拉菜单效果
Aug 27 Javascript
js+css3制作时钟特效
Oct 16 Javascript
javascript中new Array()和var arr=[]用法区别
Dec 01 Javascript
vue通过点击事件读取音频文件的方法
May 30 Javascript
微信开发之微信jssdk录音功能开发示例
Oct 22 Javascript
微信小程序模板template简单用法示例
Dec 04 Javascript
vue中的过滤器及其时间格式化问题
Apr 09 Javascript
vue+element ui实现锚点定位
Jun 29 Vue.js
jQuery学习5 jQuery事件模型
Feb 07 #Javascript
jQuery学习4 浏览器的事件模型
Feb 07 #Javascript
jQuery学习3:操作元素属性和特性
Feb 07 #Javascript
jQuery学习2 选择器的使用说明
Feb 07 #Javascript
jQuery ctrl+Enter shift+Enter实现代码
Feb 07 #Javascript
JQuery 获取和设置Select选项的代码
Feb 07 #Javascript
经典海量jQuery插件 大家可以收藏一下
Feb 07 #Javascript
You might like
我用php+mysql写的留言本
2006/10/09 PHP
php实现给图片加灰色半透明效果的方法
2014/10/20 PHP
PHP获取文件相对路径的方法
2015/02/26 PHP
php删除一个路径下的所有文件夹和文件的方法
2018/02/07 PHP
javascript import css实例代码
2008/07/18 Javascript
Javascript中常见的校验如域名、手机、邮箱等等
2014/01/02 Javascript
javascript实现无限级select联动菜单
2015/01/02 Javascript
Highcharts 多个Y轴动态刷新数据的实现代码
2016/05/28 Javascript
Angularjs 动态改变title标题(兼容ios)
2016/12/29 Javascript
JQuery获取鼠标进入和离开容器的方向
2016/12/29 Javascript
Move.js入门
2017/02/08 Javascript
详解Vue使用 vue-cli 搭建项目
2017/04/20 Javascript
深入理解vue-router之keep-alive
2017/08/31 Javascript
angular4自定义表单控件[(ngModel)]的实现
2018/11/23 Javascript
es6 symbol的实现方法示例
2019/04/02 Javascript
详解微信小程序之提高应用速度小技巧
2020/01/07 Javascript
js防抖函数和节流函数使用场景和实现区别示例分析
2020/04/11 Javascript
小程序按钮避免多次调用接口和点击方案实现(不用showLoading)
2020/04/15 Javascript
在vue-cli创建的项目中使用sass操作
2020/08/10 Javascript
python以环状形式组合排列图片并输出的方法
2015/03/17 Python
python自定义函数实现一个数的三次方计算方法
2019/01/20 Python
python2与python3爬虫中get与post对比解析
2019/09/18 Python
使用keras实现BiLSTM+CNN+CRF文字标记NER
2020/06/29 Python
python中如何打包用户自定义模块
2020/09/23 Python
详解css3 flex弹性盒自动铺满写法
2020/09/17 HTML / CSS
iostream与iostream.h的区别
2015/01/16 面试题
数字天堂软件测试面试题
2012/12/23 面试题
计算机系毕业生推荐信
2013/11/06 职场文书
护理不良事件检讨书
2014/02/06 职场文书
行政主管职责范本
2014/03/07 职场文书
文明寄语大全
2014/04/11 职场文书
毕业生求职信范文
2014/06/29 职场文书
群众路线学习笔记范文
2014/11/06 职场文书
五一劳动节慰问信
2015/02/14 职场文书
李强为自己工作观后感
2015/06/11 职场文书
python实现会员信息管理系统(List)
2022/03/18 Python