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 图像动画的小demo
May 23 Javascript
深入理解javascript学习笔记(一) 编写高质量代码
Aug 09 Javascript
js特殊字符转义介绍
Nov 05 Javascript
jQuery点击自身以外地方关闭弹出层的简单实例
Dec 24 Javascript
移动Web中图片自适应的两种JavaScript解决方法
Jun 18 Javascript
jquery对Json的各种遍历方法总结(必看篇)
Sep 29 Javascript
JS中双击和单击事件冲突的解决方法
Apr 09 Javascript
详解vue项目接入微信JSSDK的坑
Dec 14 Javascript
使用layui日期控件laydate对开始和结束时间进行联动控制的方法
Sep 06 Javascript
Jquery+AJAX实现无刷新上传并重命名文件操作示例【PHP后台接收】
May 29 jQuery
vue相同路由跳转强制刷新该路由组件操作
Aug 05 Javascript
JS sort排序详细使用方法示例解析
Sep 27 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
微信营销平台系统?刮刮乐的开发
2014/06/10 PHP
PHP编写学校网站上新生注册登陆程序的实例分享
2016/03/21 PHP
详解PHP文件的自动加载(autoloading)
2018/02/04 PHP
详解PHP中的8个魔术常量
2020/07/06 PHP
Javascript代码混淆综合解决方案-Javascript在线混淆器
2006/12/18 Javascript
学习ExtJS Window常用方法
2009/10/07 Javascript
jquery ui dialog ie8出现滚动条的解决方法
2010/12/06 Javascript
jquery tab插件精简版分享
2011/09/10 Javascript
javascript实现文字图片上下滚动的具体实例
2013/06/28 Javascript
jQuery插件开发的五种形态小结
2015/03/04 Javascript
jQuery实现平滑滚动到指定锚点的方法
2015/03/20 Javascript
新手快速学习JavaScript免费教程资源汇总
2015/06/25 Javascript
javascript基本语法
2016/05/31 Javascript
jQuery的ajax和遍历数组json实例代码
2016/08/01 Javascript
jquery中封装函数传递当前元素的方法示例
2017/05/05 jQuery
vue.js 使用v-if v-else发现没有执行解决办法
2017/05/15 Javascript
Angular中的$watch方法详解
2017/09/18 Javascript
用vue封装插件并发布到npm的方法步骤
2017/10/18 Javascript
Validform验证时可以为空否则按照指定格式验证
2017/10/20 Javascript
详解vue项目中使用token的身份验证的简单实践
2019/03/08 Javascript
JS实现的tab切换并显示相应内容模块功能示例
2019/08/03 Javascript
tensorflow 自定义损失函数示例代码
2020/02/05 Python
如何用python实现一个HTTP连接池
2021/01/14 Python
css3学习心得分享
2013/08/19 HTML / CSS
Peter Millar官网:美国高档生活服饰品牌
2018/07/02 全球购物
生产车间主管岗位职责
2013/12/28 职场文书
争论的故事教学反思
2014/02/06 职场文书
运输服务质量承诺书
2014/03/27 职场文书
公共场所禁烟标语
2014/06/25 职场文书
晋江市人民政府党组群众路线教育实践活动整改方案
2014/10/25 职场文书
推广普通话宣传标语口号
2015/12/26 职场文书
预防职务犯罪警示教育心得体会
2016/01/15 职场文书
超市啤酒狂欢夜策划方案范文!
2019/07/03 职场文书
pytorch fine-tune 预训练的模型操作
2021/06/03 Python
Python包argparse模块常用方法
2021/06/04 Python
Python采集爬取京东商品信息和评论并存入MySQL
2022/04/12 Python