您的位置:首页 > Web前端 > JavaScript

javascript实现tab切换效果

2010-12-30 18:46 721 查看
这个功能是很久之前实现的,现在发上来,很长一段时间没更新博客了,真惭愧。这个JS代码还有很多修改的空间,先发上来,以后再发个更新的版本吧。

这是效果图:



【HTML代码】


【js】

/**
* tabs
* @author   橡树小屋
*/
var tabs=function(){
function tag(name,elem){
return (elem||document).getElementsByTagName(name);
}
//获得相应ID的元素
function id(name){
return document.getElementById(name);
}
function first(elem){
elem=elem.firstChild;
return elem&&elem.nodeType==1? elem:next(elem);
}
function next(elem){
do{
elem=elem.nextSibling;
}while(
elem&&elem.nodeType!=1
)
return elem;
}
return {
set:function(elemId,tabId){
var elem=tag("li",id(elemId));
var tabs=tag("div",id(tabId));
var listNum=elem.length;
var tabNum=tabs.length;
for(var i=0;i<listNum;i++){
elem[i].onclick=(function(i){
return function(){
for(var j=0;j<tabNum;j++){
if(i==j){
tabs[j].style.display="block";
//alert(elem[j].firstChild);
elem[j].firstChild.className="selected";
}
else{
tabs[j].style.display="none";
elem[j].firstChild.className="";
}
}
}
})(i)
}
}
}
}();
window.onload=function(){
tabs.set("nav","menu_con");
}


【CSS】

body{ background:#FFF;}
a{color:#585858}
#menu{width:360px;}
/*-------------------nav样式----------------------*/
#menu #nav {display:block;width:100%;padding:0;margin:0;list-style:none;
background:url(../images/bg.gif)}
#menu #nav li {float:left;width:120px;}
#menu #nav li a {display:block;line-height:27px;text-decoration:none;padding:0 0 0 5px; text-align:center}

/*-------------------列表标题样式----------------------*/
#menu_con{ width:358px; height:135px;border:1px solid #BF9660; border-top:none}
.selected{background:url(../images/tag_bg.gif);}
.clear{ clear:both}


调用方法:

tabs.set("nav","menu_con");

代码下载 点击这里

只实现了点击切换的效果。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: