Foros del Web » Programando para Internet » Javascript »

[Aporte] EasyTabs

Estas en el tema de [Aporte] EasyTabs en el foro de Javascript en Foros del Web. Hola, hice hace unos dias este codigo para hacer tabs facilmente (estaba aburrido ) y un amigo justo me pregunto como hacer y se lo ...
  #1 (permalink)  
Antiguo 10/06/2009, 12:19
Avatar de pato12  
Fecha de Ingreso: septiembre-2007
Ubicación: Salta
Mensajes: 1.620
Antigüedad: 16 años, 7 meses
Puntos: 101
[Aporte] EasyTabs

Hola,
hice hace unos dias este codigo para hacer tabs facilmente (estaba aburrido ) y un amigo justo me pregunto como hacer y se lo pase y le gusto. Ahora lo posteo para el que lo nesesita.
Código javascript:
Ver original
  1. var EasyTabs=(function(ele,actived){
  2.         var el=document.getElementById(ele);
  3.         var links=[];
  4.         var dom=el.getElementsByTagName('a');
  5.         for(var i=0;i<dom.length;i++){
  6.             var uid=(((dom[i].getAttribute('href'))).split('#'))[1].replace('#','');
  7.             links.push(uid);
  8.             if(dom[i].parentNode.getAttribute('actived')=="true"){
  9.                 dom[i].parentNode.className+=(dom[i].parentNode.className?' ':'')+actived;
  10.                 document.getElementById(uid).style.display='block';
  11.             }else{
  12.                 document.getElementById(uid).style.display='none';
  13.             }
  14.             dom[i].onclick=function(){
  15.                 domLi=el.getElementsByTagName('li');
  16.                 idA=(((this.getAttribute('href')).split('#'))[1].replace('#',''));
  17.                 for(var j=0;j<domLi.length;j++){
  18.                     domLi[j].className=this.className.replace(new RegExp("(^|\\s+)"+actived+"(\\s+|$)"), ' ');
  19.                 }
  20.                 this.parentNode.className+=(this.parentNode.className?' ':'')+actived;
  21.                 for(var i=0;i<links.length;i++){
  22.                     document.getElementById(links[i]).style.display='none'
  23.                 }
  24.                 if(document.getElementById(idA))
  25.                     document.getElementById(idA).style.display='block';
  26.                 return false;
  27.             };
  28.             dom[i].onfocus=function(){this.blur();};
  29.         }
  30. });
  31. // EasyTabs('ID DE LOS TABS','NOMBRE DE LA CLASS CUANDO ESTA ACTIVADA');
Modo de uso:
Código html:
Ver original
  1. <ul class="tabs" id="tabs">
  2.     <li actived="true"><a href="#t1">Tab uno</a></li>
  3.     <li><a href="#t2">Tab dos</a></li>
  4.     <li style="float:right;"><a href="#t3">Tab tres derecha</a></li>
  5. </ul>
  6. <div class="contendio">
  7.     <div id="t1">Tab numero uno</div>
  8.     <div id="t2">Tab numero dos</div>
  9.     <div id="t3">Tab numero tres derecha</div>
  10. </div>
  11. <!-- SE PONE actived="true" AL TAB ACTIVADO -->
  12. <!-- EN EL href SE PONE EL ID DEL TAB A MOSTRAR (CON EL # AL PRINCIPIO) -->
y el code js:
Código javascript:
Ver original
  1. EasyTabs('tabs','actived');

DEMO: http://www.halfmusic.com/easytabs.html

Salu2
__________________
Half Music - www.halfmusic.com

Última edición por pato12; 05/07/2010 a las 16:34 Razón: poner modo de uso y corregir un bug en ie :P
  #2 (permalink)  
Antiguo 10/06/2009, 16:05
 
Fecha de Ingreso: febrero-2007
Mensajes: 309
Antigüedad: 17 años, 2 meses
Puntos: 16
Respuesta: [Aporte] EasyTabs

Muy bueno y muy bien programado!

Gracias!
__________________
Responder encuestas
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 10:31.