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. python随机生成图片

    #-*-coding:utf-8-*- import tensorflow as tf import numpy as np import cv2 image = tf.random_uniform( ...

  2. iOS开发系列-SQLite

    概述 SQLite3是一款轻型的嵌入式数据库.它占用资源非常低,在嵌入式设备中,可能只需要几百K的内存就够了.它的处理速度比Mysql.PostgreSQL这两款著名的数据库速度还快. 数据库简介 常 ...

  3. Spring Security Web应用入门环境搭建

    在使用Spring Security配置Web应用之前,首先要准备一个基于Maven的Spring框架创建的Web应用(Spring MVC不是必须的),本文的内容都是基于这个前提下的. pom.xm ...

  4. Codeforces 442B. Andrey and Problem

    time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standa ...

  5. 玩转xargs

    xargs命令可以把标准输入数据转换成命令行参数.也可以将单行或多行文本输入转换成其他格式,是构建单行命令的重要组件之一. xargs命令应该紧跟在管道操作符之后,以stdin作为主要的源数据流,使用 ...

  6. odoo xml 时间搜索条件

    今年 <filter string="This Year" name="year" domain="[('date','<=', time ...

  7. 快速傅里叶变换(FFT)学习

    首先,在写这篇博客之前,我还没有完全学会FFT. 先把会的部分打好,加深一下记忆(也可以说是做笔记吧). 初三了,还不会FFT,要退役喽-- 多项式乘法 点开这篇博客之前,你就应该知道,FFT是用来求 ...

  8. oauth2使用心得-----基本概念以及认证服务器搭建

    应用场景 我们假设你有一个“云笔记”产品,并提供了“云笔记服务”和“云相册服务”,此时用户需要在不同的设备(PC.Android.iPhone.TV.Watch)上去访问这些“资源”(笔记,图片) 那 ...

  9. webservice作用(优,缺点;作用)

    1其实我们平时的应用,有一方面考虑是部署方便,维护容易~!如果是DLL,部署,更新需要每个应用了这个DLL的应用程序都作相应的引用更新...而如果用了Ws,则不用,因为它通过网络部署,通过网络引用,基 ...

  10. 卸载VS2015之后,安装VS2017出错

    安装出现问题. 可通过以下方式排查包故障问题: 1. 使用以下搜索 URL 来搜索针对每个包故障的解决方案 2. 针对受与影响的工作负荷或组件修改选项,然后重新尝试安装 3. 从计算机上删除产品,然后 ...