js实现tab切换效果


Posted in Javascript onFebruary 16, 2017

效果如下:

js实现tab切换效果

代码如下:

<!DOCTYPE html > 
<html> 
<head> 
<meta charset="utf-8" /> 
<title>js封装一个tab效果</title> 
<style type="text/css"> 
*{margin:0; padding:0;}
body { font:12px/1.8 Arial; color:#666;}
.wrapper { width:500px; border:1px solid #e6e6e6; margin:0 auto; padding:50px;}
/*--=tabPanel--*/
#tab{border:1px solid #ccc;}
#tab .tab-bd{border-top:none;margin:0 auto;padding:10px;text-align:left;height:120px;position:relative}
.tab-nav{margin:0 auto;padding:0;background:#eee;height:26px;}
.tab-nav li{display:inline;list-style:none outside none;width:90px;height:26px;float:left;line-height:26px;text-align:center;}
.tab-nav li a{color:#555;display:inline-block}
.tab-nav li a:hover,.tab-nav li.hover a{text-decoration:none;background:#fff;color:#000;display:block; }
.hidden{display:none}
</style> 
<script type="text/javascript">
function tabPanel(param){
 var defaultIndex=param["default"]||0,//设置显示的页面
 panelobj=param["panel"],//设置tab容器
 defalutClass=param["defalutStyle"]||"",//设置tab菜单项的普通样式
 hoverClass=param["hoverStyle"]||"hover",//设置鼠标移到tab菜单项的样式
 currentIndex=defaultIndex,
 menus=_$(panelobj).getElementsByTagName("ul")[0].getElementsByTagName("li"),
 contents=_$(panelobj).getElementsByTagName("ul")[1].getElementsByTagName("li"),
 menuNumber=menus.length,
 hidden="hidden";
 for(var i=0;i<menuNumber;i++){
 _setClass(contents[0],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}
}
</script>
<body> 
<div class="wrapper">
<div id="tab">
 <!-- tabHead -->
 <ul class="tab-nav">
 <li><a href="javascript:void(0)" rel="external nofollow" rel="external nofollow" rel="external nofollow" >交易安全</a></li>
 <li><a href="javascript:void(0)" rel="external nofollow" rel="external nofollow" rel="external nofollow" >淘宝大学</a></li>
 <li><a href="javascript:void(0)" rel="external nofollow" rel="external nofollow" rel="external nofollow" >爱心</a></li>
 </ul>
 <!-- tabPanel-->
 <ul class="tab-bd">
 <li>
  1111
 </li>
 <li>
  222
 </li>
 <li>
  333
 </li>
 </ul>
</div>
<script type="text/javascript">
tabPanel({"panel":"tab"});//panel为必填项,default、defalutStyle、hoverStyle为选填项
</script>
</div>
</body> 
</html>

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持三水点靠木!

Javascript 相关文章推荐
使用ImageMagick进行图片缩放、合成与裁剪(js+python)
Sep 16 Javascript
纯JS代码实现气泡效果
May 04 Javascript
jQuery html表格排序插件tablesorter使用方法详解
Feb 10 Javascript
JavaScript实现获取远程的html到当前页面中
Mar 26 Javascript
微信小程序 商城开发(ecshop )简单实例
Apr 07 Javascript
详解vue过滤器在v2.0版本用法
Jun 01 Javascript
详解vue.js之绑定class和style的示例代码
Aug 24 Javascript
第一个Vue插件从封装到发布
Nov 22 Javascript
Vue引用Swiper4插件无法重写分页器样式的解决方法
Sep 27 Javascript
Typescript的三种运行方式(小结)
Sep 18 Javascript
基于vue+echarts数据可视化大屏展示的实现
Dec 25 Vue.js
GitHub上77.9K的Axios项目有哪些值得借鉴的地方详析
Jun 15 Javascript
jquery实现自适应banner焦点图
Feb 16 #Javascript
js 作用域和变量详解
Feb 16 #Javascript
利用Chrome DevTools直接调试Node.js和JavaScript的方法详解(并行)
Feb 16 #Javascript
js面向对象编程总结
Feb 16 #Javascript
gulp加批处理(.bat)实现ng多应用一键自动化构建
Feb 16 #Javascript
JS实现DIV高度自适应窗口示例
Feb 16 #Javascript
Js apply方法详解
Feb 16 #Javascript
You might like
php 全局变量范围分析
2009/08/07 PHP
Zend Framework动作助手Json用法实例分析
2016/03/05 PHP
如何使用PHP给图片加水印
2016/10/12 PHP
PHP实现APP微信支付的实例讲解
2018/02/10 PHP
为何说PHP引用是个坑,要慎用
2018/04/02 PHP
收藏一些不常用,但是有用的代码
2007/03/12 Javascript
js中eval()函数和trim()去掉字符串左右空格应用
2013/02/02 Javascript
javascript/jquery获取地址栏url参数的方法
2014/03/05 Javascript
js中匿名函数的创建与调用方法分析
2014/12/19 Javascript
JS选取DOM元素的简单方法
2016/07/08 Javascript
node 利用进程通信实现Cluster共享内存
2017/10/27 Javascript
vue v-model实现自定义样式多选与单选功能
2018/07/05 Javascript
微信小程序实现红包功能(后端PHP实现逻辑)
2018/07/11 Javascript
vue实现父子组件之间的通信以及兄弟组件的通信功能示例
2019/01/29 Javascript
详解React项目中碰到的IE问题
2019/03/14 Javascript
JS一次前端面试经历记录
2020/03/19 Javascript
Python深入学习之特殊方法与多范式
2014/08/31 Python
Python异常学习笔记
2015/02/03 Python
Python实现的微信好友数据分析功能示例
2018/06/21 Python
python如何获取当前文件夹下所有文件名详解
2019/01/25 Python
基于Python实现签到脚本过程解析
2019/10/25 Python
Python scrapy增量爬取实例及实现过程解析
2019/12/24 Python
详解python opencv、scikit-image和PIL图像处理库比较
2019/12/26 Python
python连接打印机实现打印文档、图片、pdf文件等功能
2020/02/07 Python
Python利用PyPDF2库获取PDF文件总页码实例
2020/04/03 Python
好药师网上药店:安全合法的网上药品零售药房
2017/02/15 全球购物
OLEDBConnection和SQLConnection有什么区别
2013/05/31 面试题
中学劳技课教师的自我评价
2014/02/05 职场文书
干部现实表现材料
2014/02/13 职场文书
材料加工工程求职信
2014/02/19 职场文书
安全承诺书范文
2014/03/26 职场文书
销售员态度差检讨书
2014/10/26 职场文书
2015年幼儿园安全工作总结
2015/05/12 职场文书
焦裕禄观后感
2015/06/03 职场文书
虎兄虎弟观后感
2015/06/12 职场文书
老生常谈 使用 CSS 实现三角形的技巧(多种方法)
2021/04/13 HTML / CSS