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";
}
}
})
效果如下

js的动态tab导航的更多相关文章
- (vue.js)Vue element tab 每个tab用一个路由来管理?
(vue.js)Vue element tab 每个tab用一个路由来管理? 来源:网络整理 时间:2017/5/13 0:24:01 关键词: 关于网友提出的“ (vue.js) ...
- 基于sticky组件,实现带sticky效果的tab导航和滚动导航
上文提供了一个改进版的sticky组件,并将演示效果应用到了自己的博客.有了类似sticky的这种简单组件,我们就可以在利用它开发更丰富的效果,比如本文要介绍的tab导航和滚动导航.实现简单,演示效果 ...
- 7、网页制作Dreamweaver(悬浮动态分层导航)
悬浮动态分层导航的制作: 1.首先在<head>里面引用一个JQUERY的文件以用来制作鼠标点击动画效果(从网站上下载即可) <script language="javas ...
- jQuery ui背景色动态渐变导航菜单
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- 使用ActionBar实现Tab导航
ActionBar还有常用的功能,实现Tab导航.ActionBar在顶端生成多个Tab标签,当用户单击点击某个Tab标签时,系统根据用户点击事件导航指定Tab页面. 为了使用ActionBar实现T ...
- JS滑动下划线导航菜单实现原理
效果如下:http://campus.51job.com/test/zengxl/js html: <div class="mainnav"> <div clas ...
- 微信小程序开发之tab导航栏
实现功能: 点击不同的tab导航,筛选数据 UI: js: data:{ navbar: ['半月维保', '季度维保', '半年维保',"年度维保"], //count ...
- JS实现动态瀑布流及放大切换图片效果(js案例)
整理了一下当时学js写的一些案例,再次体验了一把用原生JS实现动态瀑布流效果的乐趣,现在把它整理出来,需要的小伙伴可以参考一下. 该案例主要是用HTML+CSS控制样式,通过JS实现全局瀑布流以及点击 ...
- js如何动态创建表格(两种方法)
js如何动态创建表格(两种方法) 一.总结 一句话总结: 1.方法一:写好创建表格的html代码,将之赋值给div的innerHTML. 2.方法二.直接用创建好的table元素的方法insertRo ...
随机推荐
- elasticsearch 中文API 删除(四)
删除API 删除api允许你通过id,从特定的索引中删除类型化的JSON文档.如下例: DeleteResponse response = client.prepareDelete("twi ...
- CSS元素隐藏方法总结
display:none; visibility:hidden; opacity:0三者的区别 display:none; 该属性会让元素完全从DOM中消失,浏览器不渲染设置该属性的元素,不占据DOM ...
- CodeChef TRIPS-Children Trips 树上分块
参考文献国家集训队2015论文<浅谈分块在一类在线问题的应用>-邹逍遥 题目链接 题目大意 一棵n个节点的树,树的每条边长度为1或2,每次询问x,y,z. 要求输出从x开始走,每次只能走到 ...
- 跟我一起学习webpack(一)
跟我一起打包我们的第一个应用 第一步安装webpack 接下来我们新建文件 //add-content.js export default function(){ document.write('he ...
- Spring整合JUnit单元测试
必须先有JUnit的环境(已经导入了Junit4的开发环境) 1.导入jar包 2.在测试类上添加注解 @RunWith(SpringJUnit4ClassRunner.class) @Context ...
- mysql工具使用
mysql -u user_name -p123456 -h host_name -P 3306 -D database_name -e "show full processlist;&qu ...
- lc13 Roman to Integer
lc13 Roman to Integer 遇到那六种特殊情况分别-2,-20,-200, 按照罗马数字的规则,每种只可能出现一次.所以只需要考虑一次,用indexOf()即可判断是否出现这几种特殊情 ...
- 历届试题_DNA比对
脱氧核糖核酸即常说的DNA,是一类带有遗传信息的生物大分子.它由4种主要的脱氧核苷酸(dAMP.dGMP.dCMT和dTMP)通过磷酸二酯键连接而成.这4种核苷酸可以分别记为:A.G.C.T. ...
- hibernate 一对一注解
bi如 用户的阅读历史和文章表是单向一对一关系, 阅读历史中通过deviceId外键关联文章表的主键 然后,再从getter setter上进行注解 @OneToOne(cascade = Casca ...
- dom4j和document
DOM的优点和缺点: 优点:DOM操作思维清晰,简单 缺点:在操作大量数据的时候性能,不能保证 DOM(Document Object Model) // 表示出需要被操作的XML文件的路径,注意是文 ...