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 相关文章推荐
jQuery 图像裁剪插件Jcrop的简单使用
May 22 Javascript
你必须知道的Javascript知识点之&quot;单线程事件驱动&quot;的使用
Apr 23 Javascript
jQuery控制网页打印指定区域的方法
Apr 07 Javascript
Js+php实现异步拖拽上传文件
Jun 23 Javascript
JavaScript变量的作用域全解析
Aug 14 Javascript
深入理解angularjs过滤器
May 25 Javascript
JavaScript中的await/async的作用和用法
Oct 31 Javascript
JavaScript实现简单精致的图片左右无缝滚动效果
Mar 16 Javascript
JS简单实现点击按钮或文字显示遮罩层的方法
Apr 27 Javascript
JavaScript实现多态和继承的封装操作示例
Aug 20 Javascript
微信小程序新闻网站详情页实例代码
Jan 10 Javascript
vue @ ~ 相对路径 路径别名设置方式
Jun 05 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之第三天
2006/10/09 PHP
扩展你的 PHP 之入门篇
2006/12/04 PHP
PHP微信开发之二维码生成类
2015/06/26 PHP
php用户密码加密算法分析【Discuz加密算法】
2016/10/12 PHP
PHP实现超简单的SSL加密解密、验证及签名的方法示例
2017/08/28 PHP
PHP依赖注入原理与用法分析
2018/08/21 PHP
PHP的Trait机制原理与用法分析
2019/10/18 PHP
原生javascript实现图片轮播效果代码
2010/09/03 Javascript
理解Javascript_07_理解instanceof实现原理
2010/10/15 Javascript
jQuery对象与DOM对象之间的相互转换
2015/03/03 Javascript
jquery实现一个简单的表单验证实例
2016/03/30 Javascript
jquery获取table指定行和列的数据方法(当前选中行、列)
2016/11/07 Javascript
关于webuploader插件使用过程遇到的小问题
2016/11/07 Javascript
vue打包相关细节整理(小结)
2018/09/28 Javascript
elementUI中Table表格问题的解决方法
2018/12/04 Javascript
JavaScript 性能提升之路(推荐)
2019/04/10 Javascript
JS根据Unix时间戳显示发布时间是多久前【项目实测】
2019/07/10 Javascript
详解基于Wepy开发小程序插件(推荐)
2019/08/01 Javascript
使用Python编写一个简单的tic-tac-toe游戏的教程
2015/04/16 Python
Python的标准模块包json详解
2017/03/13 Python
Python使用三种方法实现PCA算法
2017/12/12 Python
基于python实现语音录入识别代码实例
2020/01/17 Python
ubuntu 安装pyqt5和卸载pyQt5的方法
2020/03/24 Python
通过Python实现Payload分离免杀过程详解
2020/07/13 Python
HTML5本地存储localStorage、sessionStorage基本用法、遍历操作、异常处理等
2014/05/08 HTML / CSS
TripAdvisor越南:全球领先的旅游网站
2017/09/21 全球购物
澳大利亚最大的护发和护肤品购物网站:RY
2019/12/26 全球购物
搬家公司的创业计划书
2014/01/01 职场文书
副厂长岗位职责
2014/02/02 职场文书
党员先锋岗事迹材料
2014/05/08 职场文书
医院护士见习期自我鉴定
2014/09/15 职场文书
学校感恩节活动策划方案
2014/10/06 职场文书
go开发alertmanger实现钉钉报警
2021/07/16 Golang
css常用字体属性与背景属性介绍
2022/02/28 HTML / CSS
nginx搭建NFS网络文件系统
2022/04/14 Servers
python解析照片拍摄时间进行图片整理
2022/07/23 Python