html部分

  1. <div class="container">
  2. <h3 class="page-header">tab切换</h3>
  3.  
  4. <div class="row-fluid">
  5. <div class="col-md-2" style="padding-left: 0px;">
  6. <!-- 左边导航 -->
  7. <div class="well menuSideBar" style="padding: 8px 0px;">
  8. <ul class="nav nav-list" id="menuSideBar">
  9. <li class="nav-header">导航菜单</li>
  10. <li class="nav-divider"></li>
  11. <li><a>页面1</a></li>
  12. <li><a>页面2</a></li>
  13. <li><a>页面3</a></li>
  14. </ul>
  15. </div>
  16. </div>
  17. <div class="col-md-10" style="padding : 0px;">
  18. <!-- 横导航 -->
  19. <ul class="nav nav-tabs" id="nav-tabs">
  20. <li class="active"><a>首页</a><button style="display: none;"></button></li>
  21. </ul>
  22. <!-- 内容 -->
  23. <div class="tab-content" id="tab-content">
  24. <div class="active">
  25. 欢迎
  26. </div>
  27. </div>
  28. </div>
  29. </div>
  30. </div>

css部分

  1. <link rel="stylesheet" href="https://cdn.bootcss.com/bootstrap/3.3.7/css/bootstrap.min.css">
  2. <style type="text/css">
  3. .tab-content div{
  4. display: none;
  5. }
  6. .nav button{
  7. position: relative;
  8. left:-35px;
  9. top: 10px;
  10. border: none;
  11. background: #fff;
  12. }
  13. .nav a{
  14. float: left;
  15.  
  16. }
  17. .nav-list li{
  18.  
  19. clear: both;
  20. }
  21. .nav>li>a{
  22. padding: 10px 40px;
  23. }
  24. </style>

js部分

  1. var menuSideBarli=$('#menuSideBar a');
  2. var navtabs=$('#nav-tabs');
  3. var tabcontent=$('#tab-content');
  4. //左边导航
  5. menuSideBarli.click(function(){
  6. var navtabsa=$('#nav-tabs a');
  7. var contentdiv=$('#tab-content div');
  8. var aa='';//判断是否有这个导航
  9. for(var i=0;i<navtabsa.length;i++){
  10. if(navtabsa[i].innerHTML==this.innerHTML){
  11. aa=i;
  12. }
  13. }
  14. var htmla='<li class="active"><a>'+this.innerHTML+'</a><button value='+(navtabsa.length)+'>x</button></li>';
  15. var htmlb='<div class="active">'+this.innerHTML+'</div>';
  16. if(!aa){
  17. for(var j=0;j<navtabsa.length;j++){
  18. navtabsa[j].parentNode.className="";
  19. contentdiv[j].className='';
  20. }
  21. navtabs.append(htmla);
  22. tabcontent.append(htmlb);
  23.  
  24. }else{
  25. for(var j=0;j<navtabsa.length;j++){
  26. navtabsa[j].parentNode.className="";
  27. contentdiv[j].className='';
  28. }
  29. navtabsa[aa].parentNode.className="active";
  30. contentdiv[aa].className='active';
  31. }
  32. })
  33. //删除导航
  34. $(document).on('click', 'button', function() { //jq绑定事件
  35. var contentdiv=$('#tab-content div');
  36. var shanchua=$('button');
  37. var index='';//判断点的是哪个
  38. for(var i=0;i<shanchua.length;i++){
  39. contentdiv[i].className='';
  40. shanchua[i].parentNode.className="";
  41. if(shanchua[i]==this){
  42. console.log(i);
  43. index=i;
  44. }
  45. }
  46. contentdiv[index].parentNode.removeChild(contentdiv[index]);
  47. this.parentNode.parentNode.removeChild( this.parentNode);
  48. if(contentdiv.length>2&&index==1){
  49. contentdiv[index+1].className='active';
  50. shanchua[index+1].parentNode.className="active";
  51. }else{
  52. contentdiv[index-1].className='active';
  53. shanchua[index-1].parentNode.className="active";
  54. }
  55. })
  56. //横导航切换
  57. $(document).on('click', '#nav-tabs a', function(){
  58. var nava=$('#nav-tabs a');
  59. var contentdiv=$('#tab-content div');
  60. var shanchua=$('button');
  61. for(var i=0;i<nava.length;i++){
  62. if(nava[i]==this){
  63. console.log(i)
  64. for(var j=0;j<nava.length;j++){
  65. contentdiv[j].className='';
  66. shanchua[j].parentNode.className="";
  67. }
  68. contentdiv[i].className='active';
  69. shanchua[i].parentNode.className="active";
  70. }
  71. }
  72. })

效果如下

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. zimage 和bzimage 有什么区别

    在网络中,不少服务器采用的是Linux系统.为了进一步提高服务器的性能,可能需要根据特定的硬件及需求重新编译Linux内核.编译Linux 内核,需要根据规定的步骤进行,编译内核过程中涉及到几个重要的 ...

  2. Android 开发 防止按键连续点击

    前言 按键防止连续点击是任何一个项目都要考虑的功能.下面我们将介绍几种防止按键连续点击的方法 用工具类实现 /** *@content:按键延时工具类,用于防止按键连点 *@time:2019-5-1 ...

  3. js实现事件委托

    事件委托的概念: 事件委托就是利用事件冒泡,把事件加到父元素或祖先元素上,触发执行效果. 事件委托的写法: btn6.onclick = function(event){ event = event ...

  4. Java基础——List集合整理(脑图,源码,面试题)

    常在知乎牛客网关注Java的一些面试,了解过校招社招常面哪些内容.Java集合不仅使用频率高而且在初面中也常常被问到,何止是常常,关于ArrayList的扩容,HashMap的一些底层等等都被问到烂了 ...

  5. 匿名/局部内部类访问局部变量时,为什么局部变量必须加final

    我们都知道方法中的匿名/局部内部类是能够访问同一个方法中的局部变量的,但是为什么局部变量要加上一个final呢? 首先我们来研究一下变量生命周期的问题,局部变量的生命周期是当该方法被调用时在栈中被创建 ...

  6. oracle创建新的连接(表空间?数据库?)

    一.创建用户名密码 create user username identified by password    --username 是用户名:password 是密码 二.给用户附权.撤权 gra ...

  7. Hibernate-概述-搭建-测试-配置详解

    一 hibernate概述 1.1 框架是什么 1.框架是用来提高开发效率的 2.封装了好了一些功能.我们需要使用这些功能时,调用即可.不需要再手动实现. 3.所以框架可以理解成是一个半成品的项目.只 ...

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

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

  9. HBase的一些关于CRUD方法

    配置内容 static{configuration = HBaseConfiguration.create();  //创建配置文件(也就是load工程包目录下的配置文件hbase-site.xml) ...

  10. Linux时间设置命令

    1.date: 语法格式:date [-u] [-d datestr] [-s datestr] [--utc] [--universal] [--date=datestr] [--set=dates ...