javascript tab组件

今天研究了下javascript tab代码 到网上看了下 然后自己封装了一个tab组件 本来用jquery写tab是非常简单的事件 但是在做淘宝页面时候 淘宝现在不允许用jquery框架 哇靠 一定要用kissy框架 我就便不用 靠 我直接用javascript写 这应该没有错吧!靠 废话少说!还是要引用上次翻译的一段js 那段js有一个方法是 获取类名的封装方法!如下:

 

  
  
  
  
  1. <script>  
  2. var GLOBAL = {};  
  3.     GLOBAL.namespace=function(str){  
  4.         var arr = str.split("."),o = GLOBAL;  
  5.         for (i=(arr[0]=="GLOBAL")?1:0;i<arr.length;i++){  
  6.             o[arr[i]] = o[arr[i]] || {};  
  7.             o=o[arr[i]];      
  8.         }      
  9.     }  
  10.     GLOBAL.namespace("DOM");  
  11.     GLOBAL.DOM.getElementsByClassName = function(str,root,tag){  
  12.         if(root){  
  13.             root = typeof root =="string" ? document.getElementById(root) : root;  
  14.         }else{  
  15.             root = document.body;      
  16.         }  
  17.         tag = tag || "*";  
  18.         var els = document.getElementsByTagName(tag),arr=[];  
  19.         for(var i=0,n=els.length;i<n;i++){  
  20.             for(var j=0,k=els[i].className.split(" "),l=k.length;j<l;j++){  
  21.                 if(k[j]==str){  
  22.                     arr.push(els[i]);  
  23.                     break;      
  24.                 }  
  25.             }  
  26.         }  
  27.         return arr;  
  28.     }  
  29. </script> 

因为原审js是没有这个方法 只有封装下呢!下面是js代码:

 

  
  
  
  
  1. <script>  
  2.  
  3. function tabPlug(TabMenu,TabContent){  
  4.     var list1 = GLOBAL.DOM.getElementsByClassName(TabMenu),  
  5.         c1 = GLOBAL.DOM.getElementsByClassName(TabContent);  
  6.         var hover = "hover"//当点击时增加一个类  
  7.         //下面是写个函数来获取索引值的函数,通过它获取当前点击在导航中的索引位置  
  8.         var indexValue = function(self,obj){  
  9.             for(var i=0;i<obj.length;i++){  
  10.                 if(obj[i] == self) return i;      
  11.             }     
  12.         }  
  13.         var index; //定于一个变量 来保存当前的索引  
  14.         list1[0].className = hover; //给第一个列表项添加一个类名  
  15.         for(var j=1;j<c1.length;j++){  
  16.             c1[j].style.display = "none";     
  17.         }  
  18.         for(var k=0;k<list1.length;k++){  
  19.             list1[k].onclick = function(){  
  20.                 index = indexValue(this,list1);  
  21.                 for(var m=0;m<list1.length;m++){  
  22.                     list1[m].className = (m==index) ? hover : "";//高亮显示点击项并移除其他项高亮    
  23.                 }     
  24.                 for(var n=0;n<c1.length;n++){  
  25.                     c1[n].style.display = (n==index) ? "block" : "none";//显示点击对应的选项区,隐藏其他  
  26.                 }  
  27.             }     
  28.         }     
  29. }         
  30.  </script>  

这个js不怎么难理解 我知道你们都ok的 所以也没有什么必要解析!上面也有点注释!

所有代码如下:

 

  
  
  
  
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
  2. <html xmlns="http://www.w3.org/1999/xhtml"> 
  3. <head> 
  4. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
  5. <title>无标题文档</title> 
  6. <style> 
  7. .tabnav{width:500px;height:25px;margin-left:100px; overflow:hidden;}  
  8. .tabnav li{background:#baf;color:#fff;line-height:25px;display:block;float:left;margin:0 10px;padding:0 5px;cursor:pointer}  
  9. .tabnav li.hover{background:#047}  
  10. .tabbox{width:500px;border:2px solid #047; overflow:hidden;}  
  11. .tabbox div{margin:10px;line-height:20px}  
  12. .tabbox .hide{ display:none;}  
  13.  
  14. .tabnav2{width:500px;height:25px;margin-left:100px; overflow:hidden;}  
  15. .tabnav2 li{background:#baf;color:#fff;line-height:25px;display:block;float:left;margin:0 10px;padding:0 5px;cursor:pointer}  
  16. .tabnav2 li.hover{background:#047}  
  17. .tabbox2{width:500px;border:2px solid #047; overflow:hidden;}  
  18. .tabbox2 div{margin:10px;line-height:20px}  
  19. .tabbox2 .hide{ display:none;}  
  20. </style> 
  21. <script> 
  22. var GLOBAL = {};  
  23.     GLOBAL.namespace=function(str){  
  24.         var arr = str.split("."),o = GLOBAL;  
  25.         for (i=(arr[0]=="GLOBAL")?1:0;i<arr.length;i++){  
  26.             o[arr[i]] = o[arr[i]] || {};  
  27.             oo=o[arr[i]];      
  28.         }      
  29.     }  
  30.     GLOBAL.namespace("DOM");  
  31.     GLOBAL.DOM.getElementsByClassName = function(str,root,tag){  
  32.         if(root){  
  33.             root = typeof root =="string" ? document.getElementById(root) : root;  
  34.         }else{  
  35.             root = document.body;      
  36.         }  
  37.         tagtag = tag || "*";  
  38.         var els = document.getElementsByTagName(tag),arr=[];  
  39.         for(var i=0,n=els.length;i<n;i++){  
  40.             for(var j=0,k=els[i].className.split(" "),l=k.length;j<l;j++){  
  41.                 if(k[j]==str){  
  42.                     arr.push(els[i]);  
  43.                     break;      
  44.                 }  
  45.             }  
  46.         }  
  47.         return arr;  
  48.     }  
  49. </script> 
  50. </head> 
  51.  
  52. <body> 
  53.  
  54. <ul class="tabnav"> 
  55.     <li class="list1">jQuery技术</li> 
  56.     <li class="list1">CSS技术</li> 
  57.     <li class="list1">xhtml技术</li> 
  58. </ul> 
  59. <div class="tabbox"> 
  60.     <div class="c1"><img src="http://img.ffffound.com/static-data/assets/6/644432cc1eac546463ff2a9ebefc2e81cc861961_m.jpg" /></div> 
  61.     <div class="c1 hide"><img src="http://img.ffffound.com/static-data/assets/6/8bd0ae01d96d6caad52ac97044e526edb6bf52f7_m.jpg" /></div> 
  62.     <div class="c1 hide"><img src="http://img.ffffound.com/static-data/assets/6/34aff353e8a0c93b1826170035fb8ed6d9de9933_m.png"  /></div> 
  63. </div> 
  64. <br /><br /> 
  65.   <ul class="tabnav"> 
  66.     <li class="list2">jQuery技术</li> 
  67.     <li class="list2">CSS技术</li> 
  68.     <li class="list2">xhtml技术</li> 
  69. </ul> 
  70. <div class="tabbox"> 
  71.     <div class="c2"><img src="http://img.ffffound.com/static-data/assets/6/644432cc1eac546463ff2a9ebefc2e81cc861961_m.jpg" /></div> 
  72.     <div class="c2 hide"><img src="http://img.ffffound.com/static-data/assets/6/8bd0ae01d96d6caad52ac97044e526edb6bf52f7_m.jpg" /></div> 
  73.     <div class="c2 hide"><img src="http://img.ffffound.com/static-data/assets/6/34aff353e8a0c93b1826170035fb8ed6d9de9933_m.png"  /></div> 
  74. </div>    
  75.  <script> 
  76.  
  77. function tabPlug(TabMenu,TabContent){  
  78.     var list1 = GLOBAL.DOM.getElementsByClassName(TabMenu),  
  79.         c1 = GLOBAL.DOM.getElementsByClassName(TabContent);  
  80.         var hover = "hover"; //当点击时增加一个类  
  81.         //下面是写个函数来获取索引值的函数,通过它获取当前点击在导航中的索引位置  
  82.         var indexValue = function(self,obj){  
  83.             for(var i=0;i<obj.length;i++){  
  84.                 if(obj[i] == self) return i;      
  85.             }     
  86.         }  
  87.         var index; //定于一个变量 来保存当前的索引  
  88.         list1[0].className = hover; //给第一个列表项添加一个类名  
  89.         for(var j=1;j<c1.length;j++){  
  90.             c1[j].style.display = "none";     
  91.         }  
  92.         for(var k=0;k<list1.length;k++){  
  93.             list1[k].onclick = function(){  
  94.                 index = indexValue(this,list1);  
  95.                 for(var m=0;m<list1.length;m++){  
  96.                     list1[m].className = (m==index) ? hover : "";//高亮显示点击项并移除其他项高亮    
  97.                 }     
  98.                 for(var n=0;n<c1.length;n++){  
  99.                     c1[n].style.display = (n==index) ? "block" : "none";//显示点击对应的选项区,隐藏其他  
  100.                 }  
  101.             }     
  102.         }     
  103. }         
  104.  </script>    
  105.  <script> 
  106.  tabPlug("list1","c1");  
  107.   tabPlug("list2","c2");  
  108.  </script>   
  109.    
  110.  
  111. </body> 
  112. </html> 

下面也有压缩包下载 可以看看源码!

你可能感兴趣的:(JavaScript,JavaScript,职场,休闲,tab组件)