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 相关文章推荐
js href的用法
May 13 Javascript
script不刷新页面的联动前后代码
Sep 18 Javascript
JQuery 图片滚动轮播示例代码
Mar 24 Javascript
利用jQuery实现CheckBox全选/全不选/反选的简单代码
May 31 Javascript
js严格模式总结(分享)
Aug 22 Javascript
JS 拼凑字符串的简单实例
Sep 02 Javascript
Webpack执行命令参数详解
Jun 17 Javascript
js+css实现红包雨效果
Jul 12 Javascript
JavaScript中构造函数与原型链之间的关系详解
Feb 25 Javascript
JS实现基本的网页计算器功能示例
Jan 16 Javascript
解决Vue + Echarts 使用markLine标线(precision精度问题)
Jul 20 Javascript
vue 使用微信jssdk,调用微信相册上传图片功能
Nov 13 Javascript
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
加速XP搜索功能堪比vista
2007/03/22 PHP
PHP 数组教程 定义数组
2009/10/23 PHP
smarty模板引擎中自定义函数的方法
2015/01/22 PHP
php算法实例分享
2015/07/14 PHP
CodeIgniter基于Email类发邮件的方法
2016/03/29 PHP
CI框架支持$_GET的两种实现方法
2016/05/18 PHP
使用Git实现Laravel项目的自动化部署
2019/11/24 PHP
js弹窗代码 可以指定弹出间隔
2010/07/03 Javascript
Knockout数组(observable)使用详解示例
2013/11/15 Javascript
jQuery中 prop() attr()使用详解
2015/05/19 Javascript
原生JS:Date对象全面解析
2016/09/06 Javascript
无阻塞加载js,防止因js加载不了影响页面显示的问题
2016/12/18 Javascript
微信小程序的生命周期的详解
2017/10/19 Javascript
vue.js select下拉框绑定和取值方法
2018/03/03 Javascript
koa2使用ejs和nunjucks作为模板引擎的使用
2018/11/27 Javascript
js实现每日签到功能
2018/11/29 Javascript
详解Vue的ref特性的使用
2020/01/24 Javascript
Angular5整合富文本编辑器TinyMCE的方法(汉化+上传)
2020/05/26 Javascript
Python压缩和解压缩zip文件
2015/02/14 Python
详解python如何调用C/C++底层库与互相传值
2016/08/10 Python
python读取raw binary图片并提取统计信息的实例
2020/01/09 Python
Django Serializer HiddenField隐藏字段实例
2020/03/31 Python
Python代码注释规范代码实例解析
2020/08/14 Python
HTML5的结构和语义(3):语义性的块级元素
2008/10/17 HTML / CSS
New Era英国官网:美国棒球帽品牌
2018/03/21 全球购物
TCP/IP模型的分界线
2012/12/01 面试题
兼职业务员岗位职责
2014/01/01 职场文书
高一英语教学反思
2014/01/22 职场文书
母亲节演讲稿
2014/05/27 职场文书
设备售后服务承诺书
2014/05/30 职场文书
镇党政领导班子民主生活会思想汇报
2014/10/11 职场文书
怎样写离婚协议书
2015/01/26 职场文书
严以用权专题学习研讨会发言材料
2015/11/09 职场文书
2016简单的租房合同范本
2016/03/18 职场文书
导游词之云南省玉龙雪山
2019/12/19 职场文书
go语言map与string的相互转换的实现
2021/04/07 Golang