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 相关文章推荐
理解Javascript_01_理解内存分配原理分析
Oct 11 Javascript
jQuery插件开发基础简单介绍
Jan 07 Javascript
百度地图api应用标注地理位置信息(js版)
Feb 01 Javascript
js中substring和substr的详细介绍与用法
Aug 29 Javascript
JavaScript实现Base64编码转换
Apr 23 Javascript
基于JS实现textarea中获取动态剩余字数的方法
May 25 Javascript
如何提高javascript加载速度
Dec 26 Javascript
JS判断指定dom元素是否在屏幕内的方法实例
Jan 23 Javascript
bootstrap fileinput组件整合Springmvc上传图片到本地磁盘
May 11 Javascript
微信小程序自定义组件
Aug 16 Javascript
javascript实现日历效果
Jun 17 Javascript
webpack介绍使用配置教程详解webpack介绍和使用
Jun 25 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
PHP实现的简单异常处理类示例
2017/05/04 PHP
PHP实现的redis主从数据库状态检测功能示例
2017/07/20 PHP
PHP Ajax跨域问题解决方案代码实例
2020/08/01 PHP
用Mootools获得操作索引的两种方法分享
2011/12/12 Javascript
js页面跳转的问题(跳转到父页面、最外层页面、本页面)
2013/08/14 Javascript
浅析jquery unbind()方法移除元素绑定的事件
2016/05/24 Javascript
JS中Json数据的处理和解析JSON数据的方法详解
2016/06/29 Javascript
表单中单选框添加选项和移除选项
2016/07/04 Javascript
Vuex之理解Getters的用法实例
2017/04/19 Javascript
JS图片预加载插件详解
2017/06/21 Javascript
详解组件库的webpack构建速度优化
2018/06/18 Javascript
layui实现数据表格自定义数据项
2019/10/26 Javascript
JS实现拼图游戏
2021/01/29 Javascript
vue实现户籍管理系统
2020/05/29 Javascript
解决vue的router组件component在import时不能使用变量问题
2020/07/26 Javascript
[58:29]DOTA2-DPC中国联赛 正赛 Phoenix vs XG BO3 第一场 1月31日
2021/03/11 DOTA
Python中的闭包总结
2014/09/18 Python
浅谈python类属性的访问、设置和删除方法
2016/07/25 Python
python print输出延时,让其立刻输出的方法
2019/01/07 Python
如何给Python代码进行加密
2020/01/10 Python
Python数据分析库pandas高级接口dt的使用详解
2020/12/11 Python
在Ubuntu中安装并配置Pycharm教程的实现方法
2021/01/06 Python
德国前卫设计师时装在线商店:Luxury Loft
2019/11/04 全球购物
servlet面试题
2012/08/20 面试题
优秀学生干部个人的自我评价
2013/10/04 职场文书
办护照工作证明范本
2014/01/14 职场文书
农村婚礼主持词
2014/03/13 职场文书
技术比武方案
2014/05/19 职场文书
2014世界杯球队球队口号
2014/06/05 职场文书
外贸会计专业自荐信
2014/06/22 职场文书
党员自我对照检查材料
2014/08/19 职场文书
毕业典礼邀请函
2015/01/31 职场文书
Apache压力测试工具的安装使用
2021/03/31 Servers
eclipse创建项目没有dynamic web的解决方法
2021/06/24 Java/Android
opencv检测动态物体的实现
2021/07/21 Python
nginx中proxy_pass各种用法详解
2021/11/07 Servers