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 相关文章推荐
JQuery在光标位置插入内容的实现代码
Jun 18 Javascript
js对数字的格式化使用说明
Jan 12 Javascript
javascript 进阶篇2 CSS XML学习
Mar 14 Javascript
JSON传递bool类型数据的处理方式介绍
Sep 18 Javascript
js中switch case循环实例代码
Dec 30 Javascript
兼容IE、firefox以及chrome的js获取时间(getFullYear)
Jul 04 Javascript
快速移动鼠标触发问题及解决方法(ECharts外部调用保存为图片操作及工作流接线mouseenter和mouseleave)
Aug 29 Javascript
vue进行图片的预加载watch用法实例讲解
Feb 07 Javascript
vue iview组件表格 render函数的使用方法详解
Mar 15 Javascript
Vue中props的使用详解
Jun 15 Javascript
微信小程序嵌入腾讯视频源过程详解
Aug 08 Javascript
vue组件暴露和.js文件暴露接口操作
Aug 11 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下过滤HTML代码的函数
2007/12/10 PHP
php学习笔记 PHP面向对象的程序设计
2011/06/13 PHP
php文件怎么打开 如何执行php文件
2011/12/21 PHP
Mysql中分页查询的两个解决方法比较
2013/05/02 PHP
ThinkPHP关于session的操作方法汇总
2014/07/18 PHP
Mootools 1.2教程 排序类和方法简介
2009/09/15 Javascript
JavaScript cookie的设置获取删除详解
2014/02/11 Javascript
Jquery之Bind方法参数传递与接收的三种方法
2014/06/24 Javascript
七个不允许错过的jQuery小技巧
2015/12/21 Javascript
轻量级jQuery插件slideBox实现带底栏轮播(焦点图)代码
2016/03/28 Javascript
详解javascript获取url信息的常见方法
2016/12/19 Javascript
详解照片瀑布流效果(js,jquery分别实现与知识点总结)
2017/01/01 Javascript
详解Vuex中mapState的具体用法
2017/09/28 Javascript
Vue项目使用CDN优化首屏加载问题
2018/04/01 Javascript
AngularJS日期格式化常见操作实例分析
2018/05/17 Javascript
NodeJs实现简单的爬虫功能案例分析
2018/12/05 NodeJs
vue里如何主动销毁keep-alive缓存的组件
2019/03/21 Javascript
JS去除字符串最后的逗号实例分析【四种方法】
2019/06/20 Javascript
微信小程序 获取手机号 JavaScript解密示例代码详解
2020/05/14 Javascript
Vue性能优化的方法
2020/07/30 Javascript
Vue自定义全局弹窗组件操作
2020/08/11 Javascript
Vue-Ant Design Vue-普通及自定义校验实例
2020/10/24 Javascript
python类定义的讲解
2013/11/01 Python
Django + Uwsgi + Nginx 实现生产环境部署的方法
2018/06/20 Python
python实现在多维数组中挑选符合条件的全部元素
2019/11/26 Python
python 贪心算法的实现
2020/09/18 Python
python在linux环境下安装skimage的示例代码
2020/10/14 Python
Python爬虫进阶之爬取某视频并下载的实现
2020/12/08 Python
HTML5自定义data-* data(obj)属性和jquery的data()方法的使用
2012/12/13 HTML / CSS
大学生找工作推荐信范文
2013/11/28 职场文书
会计电算化大学生职业规划书
2014/02/05 职场文书
预备党员入党自我评价范文
2014/03/10 职场文书
班级学雷锋活动总结
2014/06/26 职场文书
车间核算员岗位职责
2014/07/01 职场文书
民族学专业职业生涯规划范文:积跬步以至千里
2014/09/11 职场文书
中学生秋季运动会广播稿
2014/09/21 职场文书