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 相关文章推荐
JavaScript 不只是脚本
May 30 Javascript
javascript 面向对象全新理练之数据的封装
Dec 03 Javascript
jQuery的运行机制和设计理念分析
Apr 05 Javascript
javascript工具库代码
Mar 29 Javascript
jquery插件star-rating.js实现星级评分特效
Apr 15 Javascript
微信小程序  audio音频播放详解及实例
Nov 02 Javascript
thinkjs之页面跳转同步异步操作
Feb 05 Javascript
Vue底层实现原理总结
Feb 17 Javascript
vue.js 嵌套循环、if判断、动态删除的实例
Mar 07 Javascript
vue解决使用webpack打包后keep-alive不生效的方法
Sep 01 Javascript
开发用到的js封装方法(20种)
Oct 12 Javascript
Element-ui DatePicker显示周数的方法示例
Jul 19 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
短波收音机简介
2021/03/01 无线电
php数组函数序列之end() - 移动数组内部指针到最后一个元素,并返回该元素的值
2011/10/31 PHP
PHP Class&amp;Object -- 解析PHP实现二叉树
2013/06/25 PHP
PHP Switch 语句之学习笔记
2013/09/21 PHP
仿dedecms下拉分页样式修改的thinkphp分页类实例
2014/10/30 PHP
PHP各种常见经典算法总结【排序、查找、翻转等】
2019/08/05 PHP
PHP使用观察者模式处理异常信息的方法详解
2019/09/24 PHP
Javascript操纵Cookie实现购物车程序
2007/02/15 Javascript
javascript 构建一个xmlhttp对象池合理创建和使用xmlhttp对象
2010/01/15 Javascript
mysql输出数据赋给js变量报unterminated string literal错误原因
2010/05/22 Javascript
JavaScript中使用构造函数实现继承的代码
2010/08/12 Javascript
angularjs封装bootstrap时间插件datetimepicker
2016/06/20 Javascript
全面了解JavaScript的数据类型转换
2016/07/01 Javascript
精彩的Bootstrap案例分享 重点在注释!(选项卡、栅格布局)
2016/07/01 Javascript
jQuery和CSS仿京东仿淘宝列表导航菜单
2017/01/04 Javascript
AngulaJS路由 ui-router 传参实例
2017/04/28 Javascript
原生JS实现的雪花飘落动画效果
2018/05/03 Javascript
Python编程中的文件操作攻略
2015/10/16 Python
Python中pygame的mouse鼠标事件用法实例
2015/11/11 Python
Python简单生成8位随机密码的方法
2017/05/24 Python
Python语言描述机器学习之Logistic回归算法
2017/12/21 Python
详解pyqt5的UI中嵌入matplotlib图形并实时刷新(挖坑和填坑)
2020/08/07 Python
Python大批量搜索引擎图像爬虫工具详解
2020/11/16 Python
HTML5中meta属性的使用方法
2016/02/29 HTML / CSS
简述Html5 IphoneX 适配方法
2018/02/08 HTML / CSS
SQL注入攻击的种类有哪些
2013/12/30 面试题
农场厂长岗位职责
2013/12/28 职场文书
委托公证书
2014/04/08 职场文书
员工安全责任书范本
2014/07/24 职场文书
竞聘自述材料
2014/08/25 职场文书
相亲活动方案
2014/08/26 职场文书
2014年学生党支部工作总结
2014/12/20 职场文书
孝女彩金观后感
2015/06/10 职场文书
导游经典开场白——导游词
2019/04/17 职场文书
2019年“我为祖国点赞”演讲稿(3篇)
2019/09/26 职场文书
使用nginx配置访问wgcloud的方法
2021/06/26 Servers