利用css和js实现页面的标签效果。(标签个数可以动态变化)

利用css和js实现页面的标签效果

css

<style>
.menu{  
 margin-bottom:-15px;
 width: 800px;  
}  
.menu li{  
 display:block;  
 float: left; 
 font-weight: bold;
 font-size: 12px; 
 padding: 2px 0;  
 width:120px;  
 text-align: center;  
 cursor:pointer;  
 background: #A9A9A9;  
 border-top:1px solid #FFFFFF;
 border-left:1px solid #FFFFFF;
 border-right:1px solid #FFFFFF;
}  
.menu li.hover{  
 background: #FFFFFF;  
 border-top:1px solid #A9A9A9;
 border-bottom;1px solid #A9A9A9;
 border-left:1px solid #A9A9A9;
 border-right:1px solid #A9A9A9;
}
#menuContent ul{  
 display: none;  
}  
#menuContent ul.block{  
 display: block;  
}
</style>

js

说明:

这里的初期化函数看起来比较复杂,实际上是为了动态控制显示标签而设计的。

当第一个标签不显示时,第二个标签的初始状态就为动作不可。

<script type="text/javascript" src="./jquery-1.8.js"></script>
<script>	
$(document).ready(function(){  
    iniKindTab();
});

function iniKindTab(){
	
		// JS操作的数据存在的情况下
		if(document.getElementById("mainMenu")!=null){	
		
			// Tab内容的初期胡处理
			var dtiComShopAndWallet=document.getElementById("mainMenu").getElementsByTagName("li");  
			// 
			var dliComShopAndWallet=document.getElementById("mainMenuContent").getElementsByTagName("ul");  
			
			// 有三个Tab,有的Tab可能不显示,第一个被显示的Tab的位置(三个Tab,索引分别为0,1,2)
			// 默认第一个Tab一开始就被显示
			var indexShowTab = 0;
			
			var indexShowTabflg = true;
			for(i=0;i<dtiComShopAndWallet.length;i++){  
			
				if(indexShowTabflg){
					if(dtiComShopAndWallet[i].style.display!='none'){
						
						indexShowTab = i;
						indexShowTabflg = false;
					}
				}
				
				dtiComShopAndWallet[i].className="";  
				dliComShopAndWallet[i].style.display="none";
			} 
			
			// 显示在第一个位置的tab是不能点击的
			dtiComShopAndWallet[indexShowTab].className="hover";
			// 显示位置开始的Tab中向对应的内容
			dliComShopAndWallet[indexShowTab].style.display="block";
		
		}
		
	}

	function setTab(menu,index){  
		var menu=document.getElementById("mainMenu").getElementsByTagName("li");  
		var menuContent=document.getElementById("mainMenuContent").getElementsByTagName("ul");  
		for(i=0;i<menu.length;i++){  
		 	menu[i].className=i==index?"hover":"";  
		 	menuContent[i].style.display=i==index?"block":"none";  
		}  
	}
</script>

HTML

<div id="tabs1">  
	<ul class="menu" id="mainMenu">  
		<li οnclick="setTab(mainMenu,0)" class="hover">Tab1</li>
		<li οnclick="setTab(mainMenu,1)" class="hover">Tab2</li>
		<li οnclick="setTab(mainMenu,2)" class="hover">Tab3</li>
		<li οnclick="setTab(mainMenu,3)" class="hover">Tab4</li>	
		<li οnclick="setTab(mainMenu,4)" class="hover">Tab5</li>			
	</ul>
<BR>
<BR>
	<div class="menuContent " id="mainMenuContent">
		<ul>标签1中的内容</ul>
		<ul>标签2中的内容</ul>
		<ul>标签3中的内容</ul>
		<ul>标签4中的内容</ul>
		<ul>标签5中的内容</ul>
	</div>
</div>



通过以上代码实现。


总结:

通过这种方式实现的好处是标签的个数可以动态的变化。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值