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 相关文章推荐
在多个页面使用同一个HTML片段《续》
Mar 04 Javascript
ajax更新数据后,jquery、jq失效问题
Mar 16 Javascript
Node.js编程中客户端Session的使用详解
Jun 23 Javascript
JavaScript实现下拉列表框数据增加、删除、上下排序的方法
Aug 11 Javascript
Vue.js基础知识汇总
Apr 27 Javascript
jQuery EasyUI封装简化操作
Sep 18 Javascript
一句jQuery代码实现返回顶部效果(简单实用)
Dec 28 Javascript
js oncontextmenu事件使用详解
Mar 25 Javascript
jQuery查找和过滤_动力节点节点Java学院整理
Jul 04 jQuery
修改vue+webpack run build的路径方法
Sep 01 Javascript
详解ESLint在Vue中的使用小结
Oct 15 Javascript
vue本地打开build后生成的dist文件夹index.html问题
Sep 04 Javascript
利用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 explode函数实例代码
2012/02/27 PHP
php中使用base HTTP验证的方法
2015/04/20 PHP
PHP加密解密实例分析
2015/12/25 PHP
PHP内存缓存功能memcached示例
2016/10/19 PHP
PHP实现一个多功能购物网站的案例
2017/09/13 PHP
jquery 简单导航实现代码
2009/09/11 Javascript
Js获取事件对象代码
2010/08/05 Javascript
Dom在ajax技术中的作用说明
2010/10/25 Javascript
javascript中JSON对象与JSON字符串相互转换实例
2015/07/11 Javascript
基于JavaScript实现智能右键菜单
2016/03/02 Javascript
全面了解JS中的匿名函数
2016/06/29 Javascript
Vue.js第四天学习笔记
2016/12/02 Javascript
详解React开发中使用require.ensure()按需加载ES6组件
2017/05/12 Javascript
JavaScript中严格判断NaN的方法
2018/02/16 Javascript
JS闭包原理与应用经典示例
2018/12/20 Javascript
详解vue 动态加载并注册组件且通过 render动态创建该组件
2019/05/30 Javascript
微信小程序通过js实现瀑布流布局详解
2019/08/28 Javascript
微信小程序地图绘制线段并且测量(实例代码)
2020/01/02 Javascript
深入理解Python 代码优化详解
2014/10/27 Python
Python Matplotlib库入门指南
2015/05/18 Python
简单了解Python下用于监视文件系统的pyinotify包
2015/11/13 Python
Python实现字典(dict)的迭代操作示例
2018/06/05 Python
python处理两种分隔符的数据集方法
2018/12/12 Python
python 对多个csv文件分别进行处理的方法
2019/01/07 Python
python自动识别文本编码格式代码
2019/12/26 Python
HTML5实现表单自动验证功能实例代码
2017/01/11 HTML / CSS
印度最大的旅游网站:MakeMyTrip
2016/10/05 全球购物
花卉与景观设计系大学生求职信
2013/10/01 职场文书
财务专业大学生职业生涯规划范文
2013/12/30 职场文书
《邮票齿孔的故事》教学反思
2014/02/22 职场文书
《三顾茅庐》教学反思
2014/04/10 职场文书
教师学习八项规定六项禁令思想汇报
2014/09/27 职场文书
合同和协议有什么区别?
2014/10/08 职场文书
2015年化妆品销售工作总结
2015/05/11 职场文书
恰同学少年观后感
2015/06/08 职场文书
利用Python第三方库实现预测NBA比赛结果
2021/06/21 Python