YUI的Tab切换实现代码


Posted in Javascript onApril 11, 2010

Tab切换应该不依赖于HTML结构,能给设计人员和前端开发最大的灵活性。原理:一个tab对象分为控制部分(trigger),内容部分(sheet)。当trigger被触发时,显示对应的sheet。

以前大树写过一个TabControl的代码,经过两年的使用依旧很考谱,说明当初这个思路还是比较符合实际需求的。我改成了基于YUI的版本,可能看起来更清晰一些。先访问测试页面查看效果,完整javascript代码在这里。

注意:改成实际代码时,请将Tab类放在某个命名空间下,不要直接暴露在全局空间中。

1:使用
以下是常用的html结构,但不限于此。

<ul id="t"> 
<li id="t1">t1</li> 
<li id="t2">t2</li> 
<li id="t3">t3</li> 
</ul> 
<div id="s"> 
<div id="s1">s1</div> 
<div id="s2">s2</div> 
<div id="s3">s3</div> 
</div>

对应的javascript代码如下,四种初始化方法都是可以的。
var tab = new Tab($D.get('t').getElementsByTagName('li'), $D.get('s').getElementsByTagName('div'));//1 
var tab = new Tab(['t1','t2', 't3'],['s1','s2', 's3']);//2 
var tab = new Tab(['t1','t2','t3'],['s1','s2','s3'],{ triggerEvent:'mouseover',slideEnabled:true});//3 
var tab = new Tab();//4 
tab.add('t1', 's1'); 
tab.add('t2', 's2'); 
tab.add('t3', 's3'); 
tab.config['triggerEvent'] = 'mouseover'; 
tab.config['slideEnabled'] = true; 
tab.onShow.subscribe(function(t, a){ ... }); 
tab.init();

2:扩展
已经实现自动切换功能(默认关闭),另外可以通过onShow自定义事件扩展,也可以在原代码基础上添加更多的自定义事件。
Javascript 相关文章推荐
js 页面关闭前的出现提示的实现代码
May 25 Javascript
JQuery文本改变触发事件如聚焦事件、失焦事件
Jan 15 Javascript
使用JS+plupload直接批量上传图片到又拍云
Dec 01 Javascript
Angular2使用Angular-CLI快速搭建工程(二)
May 21 Javascript
详谈表单格式化插件jquery.serializeJSON
Jun 23 jQuery
React Native使用Modal自定义分享界面的示例代码
Oct 31 Javascript
vue配置请求本地json数据的方法
Apr 11 Javascript
微信小程序实现带参数的分享功能(两种方法)
May 17 Javascript
Vue中qs插件的使用详解
Feb 07 Javascript
小程序实现背景音乐播放和暂停
Jun 19 Javascript
vue pages 多入口项目 + chainWebpack 全局引用缩写说明
Sep 21 Javascript
jQuery实现移动端扭蛋机抽奖
Nov 08 jQuery
利用JS重写Cognos右键菜单的实现代码
Apr 11 #Javascript
可以将word转成html的js代码
Apr 11 #Javascript
jquery 表格分页等操作实现代码(pagedown,pageup)
Apr 11 #Javascript
jquery 模拟雅虎首页的点击对话框效果
Apr 11 #Javascript
url 编码 js url传参中文乱码解决方案
Apr 11 #Javascript
jquery学习笔记二 实现可编辑的表格
Apr 09 #Javascript
jquery 图片截取工具jquery.imagecropper.js
Apr 09 #Javascript
You might like
PHP封装分页函数实现文本分页和数字分页
2014/10/23 PHP
解决form中action属性后面?传递参数 获取不到的问题
2017/07/21 PHP
求解开jscript.encode代码的asp函数
2007/02/28 Javascript
使用新的消息弹出框blackbirdjs
2008/10/16 Javascript
JavaScript和ActionScript的交互实现代码
2010/08/01 Javascript
html+css+js实现xp window界面及有关功能
2013/03/26 Javascript
js跨浏览器实现将字符串转化为xml对象的方法
2013/09/25 Javascript
javascript页面加载完执行事件代码
2014/02/11 Javascript
ie9 提示'console' 未定义问题的解决方法
2014/03/20 Javascript
javascript实现十六进制颜色值(HEX)和RGB格式相互转换
2014/06/20 Javascript
JS实现屏蔽shift,Ctrl,alt等功能键的方法
2015/06/01 Javascript
JS+CSS实现精美的二级导航效果代码
2015/09/17 Javascript
浅谈javascript中遇到的字符串对象处理
2016/11/18 Javascript
javascript中活灵活现的Array对象详解
2016/11/30 Javascript
jQuery.Form上传文件操作
2017/02/05 Javascript
NodeJs安装npm包一直失败的解决方法
2017/04/28 NodeJs
Javascript实现一个简单的输入关键字添加标签效果实例
2017/06/01 Javascript
vue服务端渲染的实例代码
2017/08/28 Javascript
React数据传递之组件内部通信的方法
2017/12/31 Javascript
微信小程序点击图片实现长按预览、保存、识别带参数二维码、转发等功能
2019/07/20 Javascript
微信小程序实现侧边分类栏
2019/10/21 Javascript
[54:26]完美世界DOTA2联赛PWL S3 Forest vs Rebirth 第一场 12.10
2020/12/12 DOTA
python实现问号表达式(?)的方法
2013/11/27 Python
Python代码的打包与发布详解
2014/07/30 Python
python编写的最短路径算法
2015/03/25 Python
详解Python 序列化Serialize 和 反序列化Deserialize
2017/08/20 Python
Python中将变量按行写入txt文本中的方法
2018/04/03 Python
python3正则提取字符串里的中文实例
2019/01/31 Python
​如何愉快地迁移到 Python 3
2019/04/28 Python
使用python爬取抖音视频列表信息
2019/07/15 Python
python创建学生管理系统
2019/11/22 Python
利用Python的turtle库绘制玫瑰教程
2019/11/23 Python
2014年度工作总结报告
2014/12/15 职场文书
风之谷观后感
2015/06/11 职场文书
Nginx本地目录映射实现代码实例
2021/03/31 Servers
详解Vue的options
2021/05/15 Vue.js