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 相关文章推荐
如何防止回车(enter)键提交表单
May 11 Javascript
JavaScript中的return语句简单介绍
Dec 07 Javascript
jQuery+css实现的切换图片功能代码
Jan 27 Javascript
JS实现保留n位小数的四舍五入问题示例
Aug 03 Javascript
Bootstrap 实现查询的完美方法
Oct 26 Javascript
js图片延迟加载(Lazyload)三种实现方式
Mar 01 Javascript
jQuery自定义元素右键点击事件(实现案例)
Apr 28 jQuery
详解通过JSON数据使用VUE.JS
May 26 Javascript
深入理解AngularJs-scope的脏检查(一)
Jun 19 Javascript
jquery+css3实现熊猫tv导航代码分享
Feb 12 jQuery
element-ui tree结构实现增删改自定义功能代码
Aug 31 Javascript
基于vue中的scoped坑点解说
Sep 04 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游戏编程25个脚本代码
2011/02/08 PHP
一个PHP验证码类代码分享(已封装成类)
2011/07/17 PHP
支持中文字母数字、自定义字体php验证码代码
2012/02/27 PHP
php中的一些数组排序方法分享
2012/07/20 PHP
解析php开发中的中文编码问题
2013/08/08 PHP
PHP中Session可能会引起并发问题
2015/06/26 PHP
自定义Laravel (monolog)日志位置,并增加请求ID的实现
2019/10/17 PHP
基于PHP实现堆排序原理及实例详解
2020/06/19 PHP
仿163填写邮件地址自动显示下拉(无优化)
2008/11/05 Javascript
javascript 主动派发事件总结
2011/08/09 Javascript
jquery ajax跨域解决方法(json方式)
2014/02/04 Javascript
js实现仿京东2级菜单效果(带延时功能)
2015/08/27 Javascript
js实现固定宽高滑动轮播图效果
2017/01/13 Javascript
canvas实现十二星座星空图
2017/02/14 Javascript
Vue.js路由vue-router使用方法详解
2017/03/20 Javascript
vue 使用ref 让父组件调用子组件的方法
2018/02/08 Javascript
微信小程序定位当前城市的方法
2018/07/19 Javascript
JavaScript正则表达式验证登录实例
2020/03/18 Javascript
Python实现微信公众平台自定义菜单实例
2015/03/20 Python
Tensorflow tf.nn.atrous_conv2d如何实现空洞卷积的
2020/04/20 Python
python将logging模块封装成单独模块并实现动态切换Level方式
2020/05/12 Python
Pycharm连接gitlab实现过程图解
2020/09/01 Python
使用phonegap进行本地存储的实现方法
2017/03/31 HTML / CSS
naturalizer加拿大官网:美国娜然女鞋
2017/04/04 全球购物
Skyscanner台湾:全球知名的旅行比价引擎
2018/07/01 全球购物
Spartoo荷兰:鞋子、包包和服装
2018/07/12 全球购物
澳大利亚礼品篮网站:Macarthur Baskets
2019/10/14 全球购物
桥梁与隧道工程专业本科生求职信
2013/10/08 职场文书
编辑找工作求职信范文
2013/12/16 职场文书
超市促销活动方案
2014/03/05 职场文书
村安全生产责任书
2014/08/25 职场文书
民间借贷协议书范本
2014/10/01 职场文书
2015年派出所工作总结
2015/04/24 职场文书
2016会计专业自荐信范文
2016/01/28 职场文书
人力资源部工作计划
2019/05/14 职场文书
周一早安温馨问候祝福语!
2019/07/15 职场文书