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利用div背景,做一个竖线的效果。
Nov 22 Javascript
关于js datetime的那点事
Nov 15 Javascript
js时间戳格式化成日期格式的多种方法
Nov 11 Javascript
js关于命名空间的函数实例
Feb 05 Javascript
AngularJS仿苹果滑屏删除控件
Jan 18 Javascript
详解Html a标签中href和onclick用法、区别、优先级别
Jan 16 Javascript
IScroll5实现下拉刷新上拉加载的功能实例
Aug 11 Javascript
vue2里面ref的具体使用方法
Oct 27 Javascript
vue的无缝滚动组件vue-seamless-scroll实例
Dec 18 Javascript
vue2.0 移动端实现下拉刷新和上拉加载更多的示例
Apr 23 Javascript
详解element-ui中form验证杂记
Mar 04 Javascript
canvas绘制折线路径动画实现
May 12 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基础知识回顾
2012/08/16 PHP
PHP、Python和Javascript的装饰器模式对比
2015/02/03 PHP
php实现通过cookie换肤的方法
2015/07/13 PHP
php安装ssh2扩展的方法【Linux平台】
2016/07/20 PHP
PHP面向对象之领域模型+数据映射器实例(分析)
2017/06/21 PHP
PHP code 验证码生成类定义和简单使用示例
2020/05/27 PHP
javascript中的变量是传值还是传址的?
2010/04/19 Javascript
JQuery拖拽元素改变大小尺寸实现代码
2012/12/10 Javascript
jquery事件重复绑定的快速解决方法
2014/01/03 Javascript
javascript 中that的含义示例介绍
2014/05/14 Javascript
jQuery和AngularJS的区别浅析
2015/01/29 Javascript
基于javascript实现单选及多选的向右和向左移动实例
2015/07/25 Javascript
Web开发必知Javascript技巧大全
2016/02/23 Javascript
GitHub上一些实用的JavaScript的文件压缩解压缩库推荐
2016/03/13 Javascript
JS实现六边形3D拖拽翻转效果的方法
2016/09/11 Javascript
详解webpack3如何正确引用并使用jQuery库
2017/08/26 jQuery
基于vue-resource jsonp跨域问题的解决方法
2018/02/03 Javascript
详解vuex中mapState,mapGetters,mapMutations,mapActions的作用
2018/04/13 Javascript
vue使用jsonp抓取qq音乐数据的方法
2018/06/21 Javascript
vue-router命名视图的使用讲解
2019/01/19 Javascript
基于vue实现圆形菜单栏组件
2019/07/05 Javascript
python调用Moxa PCOMM Lite通过串口Ymodem协议实现发送文件
2014/08/15 Python
python使用PyGame模块播放声音的方法
2015/05/20 Python
在Django中管理Users和Permissions以及Groups的方法
2015/07/23 Python
python 数据清洗之数据合并、转换、过滤、排序
2017/02/12 Python
Python实现读取txt文件并画三维图简单代码示例
2017/12/09 Python
Python一个简单的通信程序(客户端 服务器)
2019/03/06 Python
Python如何在DataFrame增加数值
2020/02/14 Python
python rsa-oaep加密的示例代码
2020/09/23 Python
澳大利亚在线购买儿童玩具:Toy Universe
2017/12/28 全球购物
FitFlop美国官网:英国符合人体工学的鞋类品牌
2018/10/05 全球购物
函数指针的定义是什么
2016/08/14 面试题
餐饮业创业计划书范文
2014/01/06 职场文书
综合办公室主任岗位职责
2014/04/13 职场文书
2016年国培研修日志
2015/11/13 职场文书
MongoDB连接数据库并创建数据等使用方法
2021/11/27 MongoDB