JavaScript 封装一个tab效果源码分享


Posted in Javascript onSeptember 15, 2015

效果图如下:

JavaScript 封装一个tab效果源码分享

查看演示  源码下载

html代码

<!DOCTYPE html>
<html>
<head>
<title>tab测试</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-" />
<link href="css/tab.css" rel="stylesheet" type="text/css" />
<script type="text/javascript" src="js/tab-min.js"></script>
</head>
<body>
<div id="tab">
 <!-- tabHead -->
 <ul class="tab-nav">
 <li><a href="javascript:void()">交易安全</a></li>
 <li><a href="javascript:void()">淘宝大学</a></li>
 <li><a href="javascript:void()">爱心</a></li>
 </ul>
 <!-- tabPanel-->
 <ul class="tab-bd">
 <li></li>
 <li></li>
 <li></li>
 </ul>
</div>
<script type="text/javascript">
tabPanel({"panel":"tab"});//panel为必填项,default、defalutStyle、hoverStyle为选填项
</script>
</body>
</html>

js代码

function tabPanel(param){
 var defaultIndex=param["default"]||,//设置显示的页面
 panelobj=param["panel"],//设置tab容器
 defalutClass=param["defalutStyle"]||"",//设置tab菜单项的普通样式
 hoverClass=param["hoverStyle"]||"hover",//设置鼠标移到tab菜单项的样式
 currentIndex=defaultIndex,
 menus=_$(panelobj).getElementsByTagName("ul")[].getElementsByTagName("li"),
 contents=_$(panelobj).getElementsByTagName("ul")[].getElementsByTagName("li"),
 menuNumber=menus.length,
 hidden="hidden";
 for(var i=;i<menuNumber;i++){
 _setClass(contents[],hoverClass);
 _setClass(contents[i],hidden);
 _setClass(menus[i],defalutClass);
 (function(i){
 menus[i].onmouseover=function(){
 var old=menus[currentIndex];
 _setClass(old,defalutClass);
 _setClass(contents[currentIndex],hidden);
 var cur=menus[i];
 _setClass(cur,hoverClass);
 currentIndex=i;
 _setClass(contents[i],"");
 };
 })(i);
 }
 _setClass(menus[currentIndex],hoverClass);
 _setClass(contents[currentIndex],"");
 //便利函数
 function _setClass(obj,className){obj.className=className}
 function _$(oid){return typeof(oid) == "string"?document.getElementById(oid):oid}
}

css代码

#tab{border:px solid #ccc;}
#tab .tab-bd{border-top:none;margin: auto;padding:px;text-align:left;height:px;position:relative}
.tab-nav{margin: auto;padding:;background:#eee;height:px;}
.tab-nav li{display:inline;list-style:none outside none;width:px;height:px;float:left;line-height:px;text-align:center;}
.tab-nav li a{color:#;display:inline-block}
.tab-nav li a:hover,.tab-nav li.hover a{text-decoration:none;background:#fff;color:#;display:block; }
.hidden{display:none}
Javascript 相关文章推荐
js玩一玩WSH吧
Feb 23 Javascript
Javascript 面向对象之重载
May 04 Javascript
js常用代码段收集
Oct 28 Javascript
Javascript排序算法之合并排序(归并排序)的2个例子
Apr 04 Javascript
jquery实现的缩略图预览滑块实例
Jun 25 Javascript
javascript设置文本框光标的方法实例小结
Nov 04 Javascript
微信小程序开发(一) 微信登录流程详解
Jan 11 Javascript
利用C/C++编写node.js原生模块的方法教程
Jul 07 Javascript
angular.js + require.js构建模块化单页面应用的方法步骤
Jul 19 Javascript
使用nvm管理不同版本的node与npm的方法
Oct 31 Javascript
vue使用axios实现文件上传进度的实时更新详解
Dec 20 Javascript
Express之托管静态文件的方法
Jun 01 Javascript
jQuery简单实现两级下拉菜单效果代码
Sep 15 #Javascript
黑帽seo劫持程序,js劫持搜索引擎代码
Sep 15 #Javascript
JavaScript实现仿新浪微博大厅和腾讯微博首页滚动特效源码
Sep 15 #Javascript
JS实现仿FLASH效果的竖排导航代码
Sep 15 #Javascript
JS+CSS实现自适应选项卡宽度的圆角滑动门效果
Sep 15 #Javascript
JS实现完全语义化的网页选项卡效果代码
Sep 15 #Javascript
js如何判断访问是来自搜索引擎(蜘蛛人)还是直接访问
Sep 14 #Javascript
You might like
咖啡豆要不要放冰箱的原因
2021/03/04 冲泡冲煮
完美解决dedecms中的[html][/html]和[code][/code]问题
2007/03/20 PHP
PHP版单点登陆实现方案的实例
2016/11/17 PHP
javascript取消文本选定的实现代码
2010/11/14 Javascript
JQuery为textarea添加maxlength属性并且兼容IE
2013/04/25 Javascript
js控制表单操作的常用代码小结
2013/08/15 Javascript
jQuery处理图片加载失败的常用方法
2015/06/08 Javascript
jquery仿百度百科底部浮动导航特效
2015/08/08 Javascript
一篇文章掌握RequireJS常用知识
2016/01/26 Javascript
基于Bootstrap3表格插件和分页插件实例详解
2016/05/17 Javascript
用js读写cookie的简单方法(推荐)
2016/08/08 Javascript
ionic实现滑动的三种方式
2016/08/27 Javascript
基于cookie实现zTree树刷新后展开状态不变
2017/02/28 Javascript
jQuery EasyUI Draggable拖动组件
2017/03/01 Javascript
for循环 + setTimeout 结合一些示例(前端面试题)
2017/08/30 Javascript
Vue-Router2.X多种路由实现方式总结
2018/02/09 Javascript
Node.js如何对SQLite的async/await封装详解
2019/02/14 Javascript
JavaScript实现筛选数组
2021/03/02 Javascript
关于python的bottle框架跨域请求报错问题的处理方法
2017/03/19 Python
Python3实现对列表按元组指定列进行排序的方法分析
2018/12/22 Python
Django Channels 实现点对点实时聊天和消息推送功能
2019/07/17 Python
python 字典 setdefault()和get()方法比较详解
2019/08/07 Python
Python 实例方法、类方法、静态方法的区别与作用
2019/08/14 Python
Python3中configparser模块读写ini文件并解析配置的用法详解
2020/02/18 Python
keras读取训练好的模型参数并把参数赋值给其它模型详解
2020/06/15 Python
PyCharm Ctrl+Shift+F 失灵的简单有效解决操作
2021/01/15 Python
中国首家奢侈品O2O网购平台:第五大道奢侈品网
2017/12/14 全球购物
澳大利亚香水在线:Price Rite Mart
2017/12/28 全球购物
Room Mate Hotels美国:西班牙酒店品牌
2018/04/10 全球购物
后勤采购员岗位职责
2013/12/19 职场文书
大专会计自我鉴定
2014/02/06 职场文书
幼儿园优秀教师事迹
2014/02/13 职场文书
施工安全责任书范本
2014/07/24 职场文书
购房个人委托书范本
2014/10/11 职场文书
2014年小学教学工作总结
2014/11/13 职场文书
Python 线程池模块之多线程操作代码
2021/05/20 Python