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 相关文章推荐
某页码显示的helper 少量调整,另附js版
Sep 12 Javascript
省市区三级联动下拉框菜单javascript版
Aug 11 Javascript
JS针对Array的各种操作汇总
Nov 29 Javascript
jQuery中的100个技巧汇总
Dec 15 Javascript
bootstrap jquery dataTable 异步ajax刷新表格数据的实现方法
Feb 10 Javascript
JavaScript门面模式详解
Oct 19 Javascript
极简主义法编写JavaScript类
Nov 02 Javascript
vue实现提示保存后退出的方法
Mar 15 Javascript
vue中父子组件注意事项,传值及slot应用技巧
May 09 Javascript
vuex + axios 做登录验证 并且保存登录状态的实例
Sep 16 Javascript
vue-cli项目配置多环境的详细操作过程
Oct 30 Javascript
解决Layui数据表格显示无数据提示的问题
Nov 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之将POST数据转化为字符串的实现代码
2016/11/03 PHP
javascript 计算两个整数的百分比值
2009/12/26 Javascript
通过javascript设置css属性的代码
2009/12/28 Javascript
Javascript代码在页面加载时的执行顺序介绍
2013/05/03 Javascript
JavaScript获取当前页面上的指定对象示例代码
2014/02/28 Javascript
批量修改标签css样式以input标签为例
2014/07/31 Javascript
node.js中的fs.link方法使用说明
2014/12/15 Javascript
javascript实现字符串反转的方法
2015/02/05 Javascript
使用jQuery5分钟快速搞定双色表格的简单实例
2016/08/08 Javascript
js获取时间函数及扩展函数的方法
2016/10/30 Javascript
关于json字符串与实体之间的严格验证代码
2016/11/10 Javascript
JS+html5 canvas实现的简单绘制折线图效果示例
2017/03/13 Javascript
微信小程序 实例开发总结
2017/04/26 Javascript
Express之get,pos请求参数的获取
2017/05/02 Javascript
详解vue-admin和后端(flask)分离结合的例子
2018/02/12 Javascript
详解vue中router-link标签所必备了解的属性
2019/04/15 Javascript
如何在微信小程序里面退出小程序的方法
2019/04/28 Javascript
Vue移动端右滑屏幕返回上一页附源码下载
2019/06/26 Javascript
微信小程序实现多行文字超出部分省略号显示功能
2019/10/23 Javascript
[10:49]2014国际邀请赛 叨叨刀塔第二期为真正的电竞喝彩
2014/07/21 DOTA
[01:35]2018年度CS GO最佳战队-完美盛典
2018/12/17 DOTA
python使用rsa加密算法模块模拟新浪微博登录
2014/01/22 Python
Python爬虫包 BeautifulSoup  递归抓取实例详解
2017/01/28 Python
python多任务之协程的使用详解
2019/08/26 Python
解决jupyter notebook显示不全出现框框或者乱码问题
2020/04/09 Python
浅谈tensorflow使用张量时的一些注意点tf.concat,tf.reshape,tf.stack
2020/06/23 Python
django models里数据表插入数据id自增操作
2020/07/15 Python
Python把图片转化为pdf代码实例
2020/07/28 Python
好的演讲稿开场白
2013/12/30 职场文书
房屋转让协议书
2014/04/11 职场文书
优秀护士演讲稿
2014/04/30 职场文书
2014年劳动部工作总结
2014/12/11 职场文书
2016母亲节感恩话语
2015/12/09 职场文书
纪念建国70周年演讲稿
2019/07/19 职场文书
SpringBoot+Redis实现布隆过滤器的示例代码
2022/03/17 Java/Android
使用MybatisPlus打印sql语句
2022/04/22 SQL Server