js实现tab切换效果实例


Posted in Javascript onSeptember 16, 2015

直接先来个真相吧:

js实现tab切换效果实例 

【HTML代码】

<div id="menu">
<!--tag标题-->
  <ul id="nav">
    <li><a href="#" class="selected">tab1</a></li>
    <li><a href="#" class="">tab2</a></li>
    <li><a href="#" class="">tab3</a></li>
    <div style="clear:both"></div>
  </ul>
<!--二级菜单-->
  <div id="menu_con">
    <div class="tag" style="display:block">
      这是TAB切换效果区域1
     </div> 
    <div class="tag" style="display:none">
      这是TAB切换效果区域2  
     </div> 
    <div class="tag" style="display:none">
      这是TAB切换效果区域3
    </div> 
</div>
</div>

【js】

/**
 * tabs
 * @author  橡树小屋
 */
var tabs=function(){
  function tag(name,elem){
    return (elem||document).getElementsByTagName(name);
  }
  //获得相应ID的元素
  function id(name){
    return document.getElementById(name);
  }
  function first(elem){
    elem=elem.firstChild;
    return elem&&elem.nodeType==1? elem:next(elem);
  }
  function next(elem){
    do{
      elem=elem.nextSibling; 
    }while(
      elem&&elem.nodeType!=1 
    )
    return elem;
  }
  return {
    set:function(elemId,tabId){
      var elem=tag("li",id(elemId));
      var tabs=tag("div",id(tabId));
      var listNum=elem.length;
      var tabNum=tabs.length;
      for(var i=0;i<listNum;i++){
          elem[i].onclick=(function(i){
            return function(){
              for(var j=0;j<tabNum;j++){
                if(i==j){
                  tabs[j].style.display="block";
                  //alert(elem[j].firstChild);
                  elem[j].firstChild.className="selected";
                }
                else{
                  tabs[j].style.display="none";
                  elem[j].firstChild.className="";
                }
              }
            }
          })(i)
      }
    }
  }
}();
window.onload=function(){
  tabs.set("nav","menu_con");
}

【CSS】

body{ background:#FFF;}
a{color:#585858}
#menu{width:360px;}
/*-------------------nav样式----------------------*/
#menu #nav {display:block;width:100%;padding:0;margin:0;list-style:none;
 background:url(../images/bg.gif)}
#menu #nav li {float:left;width:120px;}
#menu #nav li a {display:block;line-height:27px;text-decoration:none;padding:0 0 0 5px; text-align:center}
 
/*-------------------列表标题样式----------------------*/
#menu_con{ width:358px; height:135px;border:1px solid #BF9660; border-top:none}
.selected{background:url(../images/tag_bg.gif);}
.clear{ clear:both}

调用方法:

tabs.set("nav","menu_con");

代码下载 点击这里

这个实例只是简单实现了点击切换的效果,还有许多功能可以添加,大家一起动手实践一下吧。

Javascript 相关文章推荐
关于实现代码语法标亮 dp.SyntaxHighlighter
Feb 02 Javascript
JS 进度条效果实现代码整理
May 21 Javascript
jquery隐藏标签和显示标签的实例
Nov 11 Javascript
轻量级网页遮罩层jQuery插件用法实例
Jul 31 Javascript
jQuery基于ajax实现带动画效果无刷新柱状图投票代码
Aug 10 Javascript
JS实现的简洁纵向滑动菜单(滑动门)效果
Oct 19 Javascript
浅谈Cookie的生命周期问题
Aug 02 Javascript
gulp解决跨域的配置文件问题
Jun 08 Javascript
Angular5中调用第三方js插件的方法
Feb 26 Javascript
微信小程序实现美团菜单
Jun 06 Javascript
vue+VeeValidate 校验范围实例详解(部分校验,全部校验)
Oct 19 Javascript
不依任何赖第三方,单纯用vue实现Tree 树形控件的案例
Sep 21 Javascript
JS实现自动固定顶部的悬浮菜单栏效果
Sep 16 #Javascript
jQuery图片轮播滚动切换代码分享
Apr 20 #Javascript
JS实现光滑展开合拢的菜单效果代码
Sep 16 #Javascript
jQuery实现两款有动画功能的导航菜单代码
Sep 16 #Javascript
javascript中的previousSibling和nextSibling的正确用法
Sep 16 #Javascript
Javascript实现商品秒杀倒计时(时间与服务器时间同步)
Sep 16 #Javascript
JS+CSS实现的经典tab选项卡效果代码
Sep 16 #Javascript
You might like
Snoopy类使用小例子
2008/04/15 PHP
mysql alter table命令修改表结构实例详解
2016/09/24 PHP
用Javascript数组处理多个字符串的连接问题
2009/08/20 Javascript
Js 中debug方式
2010/02/07 Javascript
js中格式化日期时间型数据函数代码
2010/11/08 Javascript
javascript打印输出json实例
2013/11/11 Javascript
详解JavaScript中循环控制语句的用法
2015/06/03 Javascript
javascript之IE版本检测超简单方法
2016/08/20 Javascript
Jquery+Ajax+xml实现中国地区选择三级联动菜单效果(推荐)
2017/06/09 jQuery
详解使用webpack打包编写一个vue-toast插件
2017/11/08 Javascript
9种使用Chrome Firefox 自带调试工具调试javascript技巧
2017/12/22 Javascript
JavaScript实现区块链
2018/03/14 Javascript
vue.js 图片上传并预览及图片更换功能的实现代码
2018/08/27 Javascript
js+html实现周岁年龄计算器
2019/06/25 Javascript
jquery中attr、prop、data区别与用法分析
2019/09/25 jQuery
Django中使用locals()函数的技巧
2015/07/16 Python
python函数的5种参数详解
2017/02/24 Python
Python3实现发送QQ邮件功能(html)
2017/12/15 Python
python机器学习之神经网络(二)
2017/12/20 Python
获取python的list中含有重复值的index方法
2018/06/27 Python
教你利用Python玩转histogram直方图的五种方法
2018/07/30 Python
Python中typing模块与类型注解的使用方法
2019/08/05 Python
使用python快速实现不同机器间文件夹共享方式
2019/12/22 Python
Python通过文本和图片生成词云图
2020/05/21 Python
美国南部最大的家族百货公司:Belk
2017/01/30 全球购物
阿玛尼美妆英国官网:Giorgio Armani Beauty英国
2019/03/28 全球购物
荷兰家电销售网站:Welhof
2020/12/08 全球购物
模具设计与制造专业应届生求职信
2013/10/18 职场文书
党员教师工作决心书
2014/03/13 职场文书
党建目标管理责任书
2014/07/25 职场文书
英语教师个人工作总结
2015/02/09 职场文书
离婚承诺书格式范文
2015/05/04 职场文书
致短跑运动员加油稿
2015/07/21 职场文书
详解Apache SkyWalking 告警配置指南
2021/04/22 Servers
Canvas如何做个雪花屏版404的实现
2021/09/25 HTML / CSS
PC版《死亡搁浅导剪版》现已发售 展开全新的探险
2022/04/03 其他游戏