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 相关文章推荐
IE8 中使用加速器(Activities)
May 14 Javascript
兼容IE和FF的js脚本代码小结(比较常用)
Dec 06 Javascript
复选框全选与全不选操作实现思路
Aug 18 Javascript
深入探寻seajs的模块化与加载方式
Apr 14 Javascript
js实现动态加载脚本的方法实例汇总
Nov 02 Javascript
再谈Javascript中的基本类型和引用类型(推荐)
Jul 01 Javascript
巧用Vue.js+Vuex制作专门收藏微信公众号的app
Nov 03 Javascript
jquery实现刷新随机变化样式特效(tag标签样式)
Feb 03 Javascript
js实现省市级联效果分享
Aug 10 Javascript
Vue.js实现双向数据绑定方法(表单自动赋值、表单自动取值)
Aug 27 Javascript
详解angular2如何手动点击特定元素上的点击事件
Oct 16 Javascript
vue项目中播放rtmp视频文件流的方法
Sep 17 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
BBS(php &amp; mysql)完整版(四)
2006/10/09 PHP
php实现mysql封装类示例
2014/05/07 PHP
PHP自定session保存路径及删除、注销与写入的方法
2014/11/18 PHP
Json_encode防止汉字转义成unicode的方法
2016/02/25 PHP
javascript框架设计读书笔记之种子模块
2014/12/02 Javascript
基于JavaScript实现仿京东图片轮播效果
2015/11/06 Javascript
JavaScript截取指定长度字符串点击可以展开全部代码
2015/12/04 Javascript
Bootstrap前端开发案例二
2016/06/17 Javascript
Angular2开发——组件规划篇
2017/03/28 Javascript
JS实现的简单标签点击切换功能示例
2017/09/21 Javascript
记一次webapck4 配置文件无效的解决历程
2018/09/19 Javascript
Vue.js 中的 v-model 指令及绑定表单元素的方法
2018/12/03 Javascript
vue实现带过渡效果的下拉菜单功能
2020/02/19 Javascript
jquery更改元素属性attr()方法操作示例
2020/05/22 jQuery
python实现博客文章爬虫示例
2014/02/26 Python
零基础学Python(一)Python环境安装
2014/08/20 Python
动感网页相册 python编写简单文件夹内图片浏览工具
2016/08/17 Python
利用python求相邻数的方法示例
2017/08/18 Python
20个常用Python运维库和模块
2018/02/12 Python
Python SQLite3简介
2018/02/22 Python
详解Python_shutil模块
2019/03/15 Python
Django命名URL和反向解析URL实现解析
2019/08/09 Python
python实现通过队列完成进程间的多任务功能示例
2019/10/28 Python
使用python实现哈希表、字典、集合操作
2019/12/22 Python
keras 如何保存最佳的训练模型
2020/05/25 Python
Python文件夹批处理操作代码实例
2020/07/21 Python
Python修改DBF文件指定列
2020/12/19 Python
Python Selenium库的基本使用教程
2021/01/04 Python
10分钟入门CSS3 Animation
2018/12/25 HTML / CSS
现金会计岗位职责
2013/12/05 职场文书
教师网络培训感言
2014/03/09 职场文书
幼儿园毕业寄语
2014/04/03 职场文书
志愿者活动总结报告
2014/06/27 职场文书
个人房屋转让协议书范本
2014/10/26 职场文书
2014教师专业技术工作总结
2014/12/03 职场文书
初二学生评语大全
2014/12/26 职场文书