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";
}
}
})

效果如下

js的动态tab导航的更多相关文章

  1. (vue.js)Vue element tab 每个tab用一个路由来管理?

    (vue.js)Vue element tab 每个tab用一个路由来管理? 来源:网络整理     时间:2017/5/13 0:24:01     关键词:   关于网友提出的“ (vue.js) ...

  2. 基于sticky组件,实现带sticky效果的tab导航和滚动导航

    上文提供了一个改进版的sticky组件,并将演示效果应用到了自己的博客.有了类似sticky的这种简单组件,我们就可以在利用它开发更丰富的效果,比如本文要介绍的tab导航和滚动导航.实现简单,演示效果 ...

  3. 7、网页制作Dreamweaver(悬浮动态分层导航)

    悬浮动态分层导航的制作: 1.首先在<head>里面引用一个JQUERY的文件以用来制作鼠标点击动画效果(从网站上下载即可) <script language="javas ...

  4. jQuery ui背景色动态渐变导航菜单

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  5. 使用ActionBar实现Tab导航

    ActionBar还有常用的功能,实现Tab导航.ActionBar在顶端生成多个Tab标签,当用户单击点击某个Tab标签时,系统根据用户点击事件导航指定Tab页面. 为了使用ActionBar实现T ...

  6. JS滑动下划线导航菜单实现原理

    效果如下:http://campus.51job.com/test/zengxl/js html: <div class="mainnav"> <div clas ...

  7. 微信小程序开发之tab导航栏

    实现功能: 点击不同的tab导航,筛选数据 UI:   js: data:{ navbar: ['半月维保', '季度维保', '半年维保',"年度维保"],    //count ...

  8. JS实现动态瀑布流及放大切换图片效果(js案例)

    整理了一下当时学js写的一些案例,再次体验了一把用原生JS实现动态瀑布流效果的乐趣,现在把它整理出来,需要的小伙伴可以参考一下. 该案例主要是用HTML+CSS控制样式,通过JS实现全局瀑布流以及点击 ...

  9. js如何动态创建表格(两种方法)

    js如何动态创建表格(两种方法) 一.总结 一句话总结: 1.方法一:写好创建表格的html代码,将之赋值给div的innerHTML. 2.方法二.直接用创建好的table元素的方法insertRo ...

随机推荐

  1. java中生成不重复随机的数字

    Java中产生随机数 1 . 调用java.lang下面Math类中的random()方法产生随机数 新建一个文件后缀名为java的文件,文件名取为MyRandom,该类中编写如下的代码: publi ...

  2. C++嵌套类(内部类与外部类)

    在一个类中定义的类被称为嵌套类,定义嵌套类的类被称为外部类.; //不能访问 mytest::i = 10;//不能访问 } private: class mytest { int i; int j; ...

  3. 高德地图(AMap)JavaScript API的使用

    申请JSAPI的开发者key 申请地址:http://lbs.amap.com/dev/key 引入高德地图JavaScript API文件: <script type="text/j ...

  4. MySQL示例数据导入

    从官网下载示例数据,参考压缩文件中的README.txt,整理所得 /******************* 示例数据导入 *******************/ /** 官网下载 http://d ...

  5. 每日上亿请求量的电商系统,JVM年轻代垃圾回收参数如何优化? ----实战教会你如何配置

    目录: 案例背景引入 特殊的电商大促场景 抗住大促的瞬时压力需要几台机器? 大促高峰期订单系统的内存使用模型估算 内存到底该如何分配? 新生代垃圾回收优化之一:Survivor空间够不够 新生代对象躲 ...

  6. create_pascal_tf_record.py 生成的record一直为0字节

    后面发现这个错误原来是自己Main目录下的train.txt中间没东西

  7. 在windows系统和linux系统中查询IP地址命令的不同

    在linux和windows系统上查询IP地址的命令是不一样的.         在linux中的命令行模式下,输入ifconfig即可查询到IP.而在windows系统下要查询IP地址需要先打开do ...

  8. golang中函数类型

    今天看Martini文档,其功能列表提到完全兼容http.HandlerFunc接口,就去查阅了Go: net/http的文档,看到type HandlerFunc这部分,顿时蒙圈了.由于之前学习的时 ...

  9. 点击按钮使用window.open打开页面后,再次点击按钮会再打开一个页面,如何解决?

    点击按钮使用window.open打开页面后,再次点击按钮会再打开一个页面,如何解决? window.open("page1.html","win1"); 这句 ...

  10. zeroclipboard复制插件兼容IE8

    <!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8&quo ...