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 相关文章推荐
学习YUI.Ext 第七天--关于View&amp;JSONView
Mar 10 Javascript
javascript 学习笔记(一)DOM基本操作
Apr 08 Javascript
JavaScript计算某一天是星期几的方法
Aug 05 Javascript
javascript使用输出语句实现网页特效代码
Aug 06 Javascript
Jquery和JS获取ul中li标签的实现方法
Jun 02 Javascript
Bootstrap中的Panel和Table全面解析
Jun 13 Javascript
javascript简写常用的12个技巧(可以大大减少你的js代码量)
Mar 28 Javascript
如何根据业务封装自己的功能组件
Apr 19 Javascript
一篇文章介绍redux、react-redux、redux-saga总结
May 23 Javascript
es6中比较有用的7个技巧小结
Jul 12 Javascript
Vue项目结合Vue-layer实现弹框式编辑功能(实例代码)
Mar 11 Javascript
JavaScript字符和ASCII实现互相转换
Jun 03 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提取中英文词语以及数字的首字母的方法介绍
2013/04/23 PHP
PHP中使用hidef扩展代替define提高性能
2015/04/09 PHP
PHP中读取文件的几个方法总结(推荐)
2016/06/03 PHP
获取Javscript执行函数名称的方法
2006/12/22 Javascript
ExtJs3.0中Store添加 baseParams 的Bug
2010/03/10 Javascript
获取select元素被选中的文本内容的js代码
2014/01/29 Javascript
JavaScript 事件绑定及深入
2015/04/13 Javascript
JS实现光滑展开合拢的菜单效果代码
2015/09/16 Javascript
第三篇Bootstrap网格基础
2016/06/21 Javascript
为jQuery-easyui的tab组件添加右键菜单功能的简单实例
2016/10/10 Javascript
Nodejs 复制文件/文件夹的方法
2017/08/24 NodeJs
JS实现对json对象排序并删除id相同项功能示例
2018/04/18 Javascript
使用 webpack 插件自动生成 vue 路由文件的方法
2019/08/20 Javascript
在Python中使用dict和set方法的教程
2015/04/27 Python
基于Python的接口测试框架实例
2016/11/04 Python
Python加密方法小结【md5,base64,sha1】
2017/07/13 Python
Python selenium根据class定位页面元素的方法
2019/02/26 Python
Django如何防止定时任务并发浅析
2019/05/14 Python
python中字典按键或键值排序的实现代码
2019/08/27 Python
Python小程序 控制鼠标循环点击代码实例
2019/10/08 Python
tensorflow实现训练变量checkpoint的保存与读取
2020/02/10 Python
利用CSS3实现进度条的两种姿势详解
2017/03/21 HTML / CSS
Canvas 帧动画吃苹果小游戏
2020/08/05 HTML / CSS
猎人靴英国官网:Hunter Boots
2017/02/02 全球购物
家得宝官网:The Home Depot(全球最大的家居装饰专业零售商)
2018/12/17 全球购物
企业精细化管理实施方案
2014/03/23 职场文书
关于中国梦的演讲稿
2014/04/23 职场文书
班级年度安全计划书
2014/05/01 职场文书
四风剖析查摆对照检查材料思想汇报
2014/09/24 职场文书
2014年教育工作总结
2014/11/26 职场文书
长城导游词
2015/01/30 职场文书
2015年世界艾滋病日活动总结
2015/03/24 职场文书
研究生论文答辩开场白
2015/05/27 职场文书
旅游安全责任协议书
2016/03/22 职场文书
2016大学生诚信考试承诺书
2016/03/25 职场文书
用PYTHON去计算88键钢琴的琴键频率和音高
2022/04/10 Python