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 autocomplete 使用手册
Apr 01 Javascript
JavaScript 面向对象的之私有成员和公开成员
May 04 Javascript
js使下拉列表框可编辑不止是选择
Dec 12 Javascript
jQuery遍历页面所有CheckBox查看是否被选中的方法
Apr 14 Javascript
基于PHP和Mysql相结合使用jqGrid读取数据并显示
Dec 02 Javascript
简易的JS计算器实现代码
Oct 18 Javascript
关于Vue组件库开发详析
Jul 01 Javascript
vue服务端渲染缓存应用详解
Sep 12 Javascript
vue多层嵌套路由实例分析
Mar 19 Javascript
JS实现点击发送验证码 xx秒后重新发送功能
Jul 30 Javascript
微信小程序模板消息推送的两种实现方式
Aug 27 Javascript
js动态生成表格(节点操作)
Jan 12 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
短波问题解答
2021/02/28 无线电
PHP中的串行化变量和序列化对象
2006/09/05 PHP
php环境下利用session防止页面重复刷新的具体实现
2014/01/09 PHP
PHP检查网站是否宕机的方法示例
2017/07/24 PHP
php中通用的excel导出方法实例
2017/12/30 PHP
PHP之多条件混合筛选功能的实现方法
2019/10/09 PHP
javascript编程起步(第六课)
2007/02/27 Javascript
JavaScript中通过闭包解决只能取得包含函数中任何变量最后一个值的问题
2010/08/12 Javascript
Jquery实现简单的动画效果代码
2012/03/18 Javascript
js实现页面转发功能示例代码
2013/08/05 Javascript
一个简单的全屏图片上下打开显示网页效果示例
2014/07/08 Javascript
JavaScript中的Primitive对象封装介绍
2014/12/31 Javascript
AngularJS的表单使用详解
2015/06/17 Javascript
AngularJS基础 ng-init 指令简单示例
2016/08/02 Javascript
JavaScript实现时间表动态效果
2017/07/15 Javascript
Vue基础学习之项目整合及优化
2019/06/02 Javascript
将Vue组件库更换为按需加载的方法步骤
2020/05/06 Javascript
vue 保留两位小数 不能直接用toFixed(2) 的解决
2020/08/07 Javascript
[57:24]LGD vs VGJ.T 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
Python进程通信之匿名管道实例讲解
2015/04/11 Python
Python在线运行代码助手
2016/07/15 Python
python django 增删改查操作 数据库Mysql
2017/07/27 Python
Django添加favicon.ico图标的示例代码
2018/08/07 Python
使用Django开发简单接口实现文章增删改查
2019/05/09 Python
Django1.11配合uni-app发起微信支付的实现
2019/10/12 Python
pygame实现飞机大战
2020/03/11 Python
浅析Python 条件控制语句
2020/07/15 Python
Python grequests模块使用场景及代码实例
2020/08/10 Python
html5 offlline 缓存使用示例
2013/06/24 HTML / CSS
HTML5不支持标签和新增标签详解
2016/06/27 HTML / CSS
婚假请假条怎么写
2014/04/10 职场文书
教育实践活动对照检查材料
2014/09/23 职场文书
毕业论文答辩演讲稿
2015/06/23 职场文书
父亲去世追悼词
2015/06/23 职场文书
2016年秋季运动会加油稿
2015/12/21 职场文书
生产实习心得体会范文
2016/01/22 职场文书