zoukankan      html  css  js  c++  java
  • javascript实现tab切换效果

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

    这是效果图:

    【HTML代码】

    <div id="menu">
    <!--tag标题-->
    	<ul id="nav">
    		<li><a href="#"  class="selected">tab1</a></li>
    		<li><a href="#"  class="">tab2</a></li>
            <li><a href="#"  class="">tab3</a></li>
            <div style="clear:both"></div>
        </ul>
    <!--二级菜单-->
    	<div id="menu_con">
    		<div class="tag" style="display:block">
      			这是TAB切换效果区域1
    		 </div> 
    		<div class="tag" style="display:none">
    			这是TAB切换效果区域2	
             </div> 
    		<div class="tag"  style="display:none">
     	    	这是TAB切换效果区域3
    		</div> 
    </div>
    </div>

    【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{360px;}
    /*-------------------nav样式----------------------*/
    #menu #nav {display:block;100%;padding:0;margin:0;list-style:none;
     background:url(../images/bg.gif)}
    #menu #nav li {float:left;120px;}
    #menu #nav li a {display:block;line-height:27px;text-decoration:none;padding:0 0 0 5px; text-align:center}
    
    /*-------------------列表标题样式----------------------*/
    #menu_con{ 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");

    代码下载 点击这里

    只实现了点击切换的效果。

  • 相关阅读:
    让用户打开你app的位置功能
    函数递归与栈的关系
    公务员考试
    毕达哥拉斯的故事
    OC5_NSMutableString操作
    OC4_NSString操作
    OC_NSString
    OC3_MyRect
    OC6_类方法
    OC5_构造方法与self指针
  • 原文地址:https://www.cnblogs.com/babyzone2004/p/1922396.html
Copyright © 2011-2022 走看看