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 相关文章推荐
jQuery简单图表peity.js使用示例
May 02 Javascript
用js闭包的方法实现多点标注冒泡示例
May 29 Javascript
如何改进javascript代码的性能
Apr 02 Javascript
用JS动态改变表单form里的action值属性的两种方法
May 25 Javascript
AngularJs Understanding the Controller Component
Sep 02 Javascript
javascript 中Cookie读、写与删除操作
Mar 29 Javascript
AngularJS实现单一页面内设置跳转路由的方法
Jun 28 Javascript
Angular.js前台传list数组由后台spring MVC接收数组示例代码
Jul 31 Javascript
vue引入新版 vue-awesome-swiper插件填坑问题
Jan 25 Javascript
浅谈JavaScript 代码简洁之道
Jan 09 Javascript
Node爬取大批量文件的方法示例
Jun 28 Javascript
JavaScript简单编程实例学习
Feb 14 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 图片上添加透明度渐变的效果
2009/06/29 PHP
php join函数应用
2011/05/04 PHP
php引用传值实例详解学习
2013/11/06 PHP
PHP设计模式之状态模式定义与用法详解
2018/04/02 PHP
Laravel框架实现抢红包功能示例
2019/10/31 PHP
Ajax+Json 级联菜单实现代码
2009/10/27 Javascript
javascript中关于执行环境的杂谈
2011/08/14 Javascript
一行代码实现纯数据json对象的深度克隆实现思路
2013/01/09 Javascript
javascript和HTML5利用canvas构建猜牌游戏实现算法
2013/07/17 Javascript
JS替换文本域内的回车示例
2014/02/18 Javascript
jQuery实现选项卡切换效果简单演示
2015/12/09 Javascript
自己封装的一个原生JS拖动方法(推荐)
2016/11/22 Javascript
bootstrap组件之按钮式下拉菜单小结
2017/01/19 Javascript
Bootstrap警告(Alerts)的实现方法
2017/03/22 Javascript
AngularJS实用基础知识_入门必备篇(推荐)
2017/07/10 Javascript
如何基于javascript实现贪吃蛇游戏
2020/02/09 Javascript
使用纯前端JavaScript实现Excel导入导出方法过程详解
2020/08/07 Javascript
ant-design-vue 时间选择器赋值默认时间的操作
2020/10/27 Javascript
《Python之禅》中对于Python编程过程中的一些建议
2015/04/03 Python
tornado 多进程模式解析
2018/01/15 Python
python编程培训 python培训靠谱吗
2018/01/17 Python
详解PyCharm配置Anaconda的艰难心路历程
2018/08/13 Python
tensorflow 大于某个值为1,小于为0的实例
2020/06/30 Python
django rest framework 自定义返回方式
2020/07/12 Python
详解Django中views数据查询使用locals()函数进行优化
2020/08/24 Python
护理专业个人求职简历的自我评价
2013/10/13 职场文书
销售主管的自我评价分享
2014/01/03 职场文书
运动会广播稿30字
2014/01/21 职场文书
教育技术学专业职业规划书
2014/03/03 职场文书
医疗纠纷协议书
2014/04/16 职场文书
中学生打架检讨书
2014/10/13 职场文书
领导参观欢迎词
2015/01/26 职场文书
舞蹈社团活动总结
2015/05/07 职场文书
本科毕业答辩开场白
2015/05/27 职场文书
带你了解Java中的ForkJoin
2022/04/28 Java/Android
win10滚动条自动往上跑怎么办?win10滚动条自动往上跑的解决方法
2022/08/05 数码科技