js实现tab切换效果实例

 更新时间:2015年09月16日 15:21:46   投稿:lijiao  
这篇文章主要介绍了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");

代码下载 点击这里

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

相关文章

  • JS算法题之查找数字在数组中的索引位置

    JS算法题之查找数字在数组中的索引位置

    这篇文章主要给大家介绍了关于JS算法题之查找数字在数组中的索引位置的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用JS具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-05-05
  • js实现界面向原生界面发消息并跳转功能

    js实现界面向原生界面发消息并跳转功能

    这篇文章主要为大家详细介绍了js实现界面向原生界面发消息并跳转功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-11-11
  • Bootstrap的Refresh Icon也spin起来

    Bootstrap的Refresh Icon也spin起来

    本文通过实例给大家介绍Bootstrap的Refresh Icon相关知识,非常不错,具有参考借鉴价值,感兴趣的朋友一起学习吧
    2016-07-07
  • require导入module.exports 或 exports导出的使用方法

    require导入module.exports 或 exports导出的使用方法

    module.exports用于导出整个模块的内容,可以通过赋值给 module.exports 导出一个对象、函数或值,导出的内容可以被其他模块通过require 导入,本文给大家介绍require导入module.exports 或 exports导出的使用,感兴趣的朋友一起看看吧
    2023-11-11
  • 简单实用的js调试logger组件实现代码

    简单实用的js调试logger组件实现代码

    开发js组件的时间调试总是麻烦的,最常用的就是用alert或者debugger来测试js的运行状态。
    2010-11-11
  • 浅析JavaScript动画

    浅析JavaScript动画

    JavaScript 动画我们可以使用 JavaScript 来创建动态的图像。实例 按钮动画 利用两个不同的事件来驱动两个相应的函数,来切换两张对应的图片以创造出动画效果。
    2015-06-06
  • js Map List 遍历使用示例

    js Map List 遍历使用示例

    在知道的key的情况下遍历map自然就跟数组一样的访问罗,这里就不说了,示例如下,感兴趣的朋友可以参考下哈,希望对大家有所帮助
    2013-07-07
  • jQuery检测输入的字符串包含的中英文的数量

    jQuery检测输入的字符串包含的中英文的数量

    这篇文章主要介绍了jQuery检测输入的字符串包含的中英文的数量的实现方法,非常的实用,这里推荐给小伙伴,有需要的朋友可以参考下。
    2015-04-04
  • js arguments.callee的应用代码

    js arguments.callee的应用代码

    arguments.callee的使用方法,具体大家自己测试了
    2009-05-05
  • js中DOM三级列表(代码分享)

    js中DOM三级列表(代码分享)

    本篇文章主要介绍了js中DOM实现三级列表的代码,具有很好的参考价值。下面跟着小编一起来看下吧
    2017-03-03

最新评论