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技术-屏蔽类
Aug 15 Javascript
JavaScript 直接操作本地文件的实现代码
Dec 01 Javascript
js实现GridView单选效果自动设置交替行、选中行、鼠标移动行背景色
May 27 Javascript
JS设置获取cookies的方法
Jan 26 Javascript
JavaScript解析json格式数据简单示例
Dec 09 Javascript
js实现简单的省市县三级联动效果实例
Feb 18 Javascript
jQuery基于Ajax实现读取XML数据功能示例
May 31 jQuery
详解jquery和vue对比
Apr 16 jQuery
详解async/await 异步应用的常用场景
May 13 Javascript
Bootstrap实现模态框效果
Sep 30 Javascript
VUE实现强制渲染,强制更新
Oct 29 Javascript
在js文件中引入(调用)另一个js文件的三种方法
Sep 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下利用header()函数设置浏览器缓存的代码
2010/09/01 PHP
php截取字符串之截取utf8或gbk编码的中英文字符串示例
2014/03/12 PHP
浅谈PHP正则表达式中修饰符/i, /is, /s, /isU
2014/10/21 PHP
url参数中有+、空格、=、%、&amp;、#等特殊符号的问题解决
2013/05/15 Javascript
利用Keydown事件阻止用户输入实现代码
2014/03/11 Javascript
JS获取网页图片name属性的方法
2015/04/01 Javascript
jQuery实现的超简单点赞效果实例分析
2015/12/31 Javascript
教你如何终止JQUERY的$.AJAX请求
2016/02/23 Javascript
[原创]jQuery常用的4种加载方式分析
2016/07/25 Javascript
基于jQuery实现左侧菜单栏可折叠功能
2016/12/27 Javascript
vue之nextTick全面解析
2017/05/17 Javascript
详解在vue-cli项目中安装node-sass
2017/06/21 Javascript
浅谈es6语法 (Proxy和Reflect的对比)
2017/10/24 Javascript
在vue中使用公共过滤器filter的方法
2018/06/26 Javascript
详解webpack 热更新优化
2018/09/13 Javascript
Node.js操作系统OS模块用法分析
2019/01/04 Javascript
Vue 一键清空表单的实现方法
2020/02/07 Javascript
[01:42]TI4西雅图DOTA2前线报道 第一顿早饭哦
2014/07/08 DOTA
[50:11]2018DOTA2亚洲邀请赛 4.7总决赛 LGD vs Mineski 第三场
2018/04/09 DOTA
[01:14]英雄,所敬略同——2018完美盛典宣传视频4K
2018/12/05 DOTA
python图像常规操作
2017/11/11 Python
Python方法的延迟加载的示例代码
2017/12/18 Python
python实现画五角星和螺旋线的示例
2019/01/20 Python
python打印n位数“水仙花数”(实例代码)
2019/12/25 Python
Python多线程正确用法实例解析
2020/05/30 Python
如何表示python中的相对路径
2020/07/08 Python
Python Tkinter实例——模拟掷骰子
2020/10/24 Python
html5 冒号分隔符对齐的实现
2019/07/31 HTML / CSS
大学生旷课检讨书
2014/01/22 职场文书
阿德的梦教学反思
2014/02/06 职场文书
大学学习个人的自我评价
2014/02/18 职场文书
入党积极分子群众意见
2015/06/01 职场文书
个人收入证明范本
2015/06/12 职场文书
WordPress多语言翻译插件 - WPML使用教程
2021/04/01 PHP
各国货币符号大全
2022/02/17 杂记
Pillow图像处理库安装及使用
2022/04/12 Python