zoukankan      html  css  js  c++  java
  • js的动态tab导航

    html部分

    <div class="container">
    <h3 class="page-header">tab切换</h3>
    
      <div class="row-fluid">
        <div class="col-md-2" style="padding-left: 0px;">
        <!-- 左边导航 -->
          <div class="well menuSideBar" style="padding: 8px 0px;">
            <ul class="nav nav-list" id="menuSideBar">
              <li class="nav-header">导航菜单</li>
              <li class="nav-divider"></li>
              <li><a>页面1</a></li>
              <li><a>页面2</a></li>
              <li><a>页面3</a></li>
            </ul>
          </div>
        </div>
        <div class="col-md-10" style="padding : 0px;"> 
          <!-- 横导航 -->
          <ul class="nav nav-tabs" id="nav-tabs">
            <li class="active"><a>首页</a><button style="display: none;"></button></li>
          </ul>
          <!-- 内容 -->
          <div class="tab-content" id="tab-content">
            <div class="active">
              欢迎
            </div>
          </div>
        </div>
      </div>
    </div>

    css部分

    <link rel="stylesheet" href="https://cdn.bootcss.com/bootstrap/3.3.7/css/bootstrap.min.css">
    <style type="text/css">
    .tab-content div{
      display: none;
    }
    .nav button{
     position: relative;
     left:-35px;
     top: 10px;
     border: none;
     background: #fff;
    }
    .nav a{
      float: left;
    
    }
    .nav-list li{
     
     clear: both;
    }
    .nav>li>a{
      padding: 10px 40px;
    }
    </style>

    js部分

      var menuSideBarli=$('#menuSideBar a');
      var navtabs=$('#nav-tabs');
      var tabcontent=$('#tab-content');
      //左边导航
      menuSideBarli.click(function(){
         var navtabsa=$('#nav-tabs a');
        var contentdiv=$('#tab-content div');
         var aa='';//判断是否有这个导航
       for(var i=0;i<navtabsa.length;i++){
        if(navtabsa[i].innerHTML==this.innerHTML){
          aa=i;
        }
       }
        var htmla='<li class="active"><a>'+this.innerHTML+'</a><button value='+(navtabsa.length)+'>x</button></li>';
        var htmlb='<div class="active">'+this.innerHTML+'</div>';
       if(!aa){
          for(var j=0;j<navtabsa.length;j++){
           navtabsa[j].parentNode.className="";
           contentdiv[j].className='';
          }
          navtabs.append(htmla);
          tabcontent.append(htmlb);
          
       }else{
        for(var j=0;j<navtabsa.length;j++){
           navtabsa[j].parentNode.className="";
            contentdiv[j].className='';
        }
        navtabsa[aa].parentNode.className="active";
         contentdiv[aa].className='active';
       }
      })
      //删除导航
       $(document).on('click', 'button', function() { //jq绑定事件
        var contentdiv=$('#tab-content div');
        var shanchua=$('button');
        var index='';//判断点的是哪个
         for(var i=0;i<shanchua.length;i++){
          contentdiv[i].className='';
          shanchua[i].parentNode.className="";
          if(shanchua[i]==this){
            console.log(i);
            index=i;
          }
         }
         contentdiv[index].parentNode.removeChild(contentdiv[index]);
         this.parentNode.parentNode.removeChild( this.parentNode);
         if(contentdiv.length>2&&index==1){
            contentdiv[index+1].className='active';
            shanchua[index+1].parentNode.className="active";
         }else{
          contentdiv[index-1].className='active';
          shanchua[index-1].parentNode.className="active";
         }
         })
    //横导航切换
        $(document).on('click', '#nav-tabs a', function(){
          var nava=$('#nav-tabs a');
          var contentdiv=$('#tab-content div');
          var shanchua=$('button');
           for(var i=0;i<nava.length;i++){
            if(nava[i]==this){
              console.log(i)
               for(var j=0;j<nava.length;j++){
                 contentdiv[j].className='';
                  shanchua[j].parentNode.className="";
               }
              contentdiv[i].className='active';
               shanchua[i].parentNode.className="active";
            }
           }
        })

    效果如下

  • 相关阅读:
    堆和栈的区别
    九度OJ 1108 堆栈的使用
    九度OJ 1201 二叉排序树
    jQuery笔记——基础知识
    JavaScript笔记——事件
    一些知识
    JavaScript笔记——BOM的操作和浏览器的检测
    JavaScript笔记——面向对象与原型
    JavaScript笔记——基础知识(二)
    JavaScript笔记——正则表达式
  • 原文地址:https://www.cnblogs.com/aSnow/p/8930974.html
Copyright © 2011-2022 走看看