IdTabs - Tab simples, bonitos y fáciles de usar

idtabs.jpg

IdTabs es un plugin para jQuery. Que nos permite crear tab o añadir pestañas a nuestro sitio de una forma sumamente sencilla. Donde a su vez a estos tab podremos darle una apariencia o una funcionalidad completamente diferente, dependiendo donde pensamos utilizarlos. Básicamente jugar con los estilos y lograr por ejemplo cubos, a su vez jugando con imágenes, o bien los tab tradicionales, o tab interactuando con sitios externos mediante iframe, y otras opciones mas, igual de interesantes.

Ver demo - Descarga Ejemplo - Leer mas en IdTabs

 

Para utilizarlo necesitaremos de jquery , basta con descargar:

y copiar y pegar el código siguiente en el < head >

JavaScript:
  1. <script type="text/javascript" src="jquery.js"></script>

Posteriormente nuestro script idTabs

JavaScript:
  1. <script type="text/javascript">
  2.  
  3. (function($){
  4.   $.fn.idTabs = function(){
  5.     //Defaults
  6.     var s = { "start":null,
  7.               "return":false,
  8.               "click":null };
  9.  
  10.     //Loop Arguments matching options
  11.     for(var i=0; i<arguments.length; ++i) {
  12.       var n = {}, a=arguments[i];
  13.       switch(typeof a){
  14.         case "object": $.extend(n,a); break;
  15.         case "number":
  16.         case "string": n.start = a; break;
  17.         case "boolean": n["return"] = a; break;
  18.         case "function": n.click = a; break;
  19.       }; $.extend(s,n);
  20.     }
  21.      
  22.     //Setup Tabs
  23.     var self = this; //Save scope
  24.     var list = $("a[@href^='#']",this).click(function(){
  25.       if($("a.selected",self)[0]==this)
  26.         return s["return"]; //return if already selected
  27.       var id = "#"+this.href.split('#')[1];
  28.       var aList = []; //save tabs
  29.       var idList = []; //save possible elements
  30.       $("a",self).each(function(){
  31.         if(this.href.match(/#/)) {
  32.           aList[aList.length]=this;
  33.           idList[idList.length]="#"+this.href.split('#')[1];
  34.         }
  35.       });
  36.       if(s.click && !s.click(id,idList,self)) return s["return"];
  37.       //Clear tabs, and hide all
  38.       for(i in aList) $(aList[i]).removeClass("selected");
  39.       for(i in idList) $(idList[i]).hide();
  40.       //Select clicked tab and show content
  41.       $(this).addClass("selected");
  42.       $(id).show();
  43.       return s["return"]; //Option for changing url
  44.     });
  45.  
  46.     //Select default tab
  47.     var test;
  48.     if(typeof s.start == "number" && (test=list.filter(":eq("+s.start+")")).length)
  49.       test.click(); //Select num tab
  50.     else if(typeof s.start == "string" && (test=list.filter("[@href='#"+s.start+"']")).length)
  51.       test.click(); //Select tab linking to id
  52.     else if((test=list.filter(".selected")).length)
  53.       test.removeClass("selected").click(); //Select tab with class 'selected'
  54.     else list.filter(":first").click(); //Select first tab
  55.  
  56.     return this; //Chainable
  57.   };
  58.   $(function(){ $(".idTabs").each(function(){ $(this).idTabs(); }); });
  59. })(jQuery)
  60. </script>

tab.jpg

CSS:
  1. /* Style for Usual tabs */
  2. .usual {
  3.   background:#181818;
  4.   color:#111;
  5.   padding:15px 20px;
  6.   width:500px;
  7.   border:1px solid #222;
  8.   margin:8px auto;
  9. }
  10. .usual li { list-style:none; float:left; }
  11. .usual ul a {
  12.   display:block;
  13.   padding:6px 10px;
  14.   text-decoration:none!important;
  15.   margin:1px;
  16.   margin-left:0;
  17.   font:10px Verdana;
  18.   color:#FFF;
  19.   background:#444;
  20. }
  21. .usual ul a:hover {
  22.   color:#FFF;
  23.   background:#111;
  24.   }
  25. .usual ul a.selected {
  26.   margin-bottom:0;
  27.   color:#000;
  28.   background:snow;
  29.   border-bottom:1px solid snow;
  30.   cursor:default;
  31.   }
  32. .usual div {
  33.   padding:10px 10px 8px 10px;
  34.   *padding-top:3px;
  35.   *margin-top:-15px;
  36.   clear:left;
  37.   background:snow;
  38.   font:10pt Georgia;
  39. }
  40. .usual div a { color:#000; font-weight:bold; }

Contenido

HTML:
  1. <div class="usual" id="usual1">
  2.   <ul>
  3.     <li><a href="#tab1">Tab 1</a></li>
  4.     <li><a href="#tab2">Tab 2</a></li>
  5.     <li><a href="#tab3">Tab 3</a></li>
  6.   </ul>
  7.   <div id="tab1"> Contenido tab 1</div>
  8.   <div id="tab2"> Contenido tab 2</div>
  9.   <div id="tab3"> Contenido tab 3</div>
  10. </div>
  11.  
  12. <script type="text/javascript">
  13.   $("#usual1 ul").idTabs();
  14. </script>

cubos.jpg

CSS:
  1. #adv2 {
  2.   width:500px;
  3.   margin:6px auto;
  4.   background:#181818;
  5. }
  6. #adv2 ul {
  7.  display:block;
  8.  width:50px;
  9.  height:50px;
  10.  float:left;
  11.   text-decoration:none;
  12.  
  13. }
  14. #adv2 li { float:left; }
  15. #adv2 li.split { clear:both; }
  16. #adv2 li a {
  17.   display:block;
  18.   height:25px;
  19.   width:25px;
  20.   line-height:22px;
  21.   text-decoration:none;
  22.  background:#222;
  23.        color:#fff;
  24. list-style:none;
  25. }
  26. #adv2 li a:hover {
  27.   background:#0A0A0A;
  28. }
  29. #adv2 li a.selected {
  30.   background:snow;
  31.   color:#111;
  32.   font-weight:bold;
  33. }
  34.  
  35. #adv2 span {
  36.   height:50px;
  37.   display:block;
  38.   line-height:45px;
  39.   width:450px;
  40.   float:right;
  41.   background:#181818;
  42. }

Contenido

HTML:
  1. <div id="adv2">
  2.   <ul>
  3.     <li><a href="#ani1">1</a></li>
  4.     <li><a href="#ani2">2</a></li>
  5.     <li class="split"></li>
  6.  
  7.     <li><a href="#ani3">3</a></li>
  8.     <li><a href="#ani4">4</a></li>
  9.   </ul>
  10.     <p id="ani1"> Contenido opción 1 </p>
  11.     <p id="ani2"> Contenido opción 2 </p>
  12.     <p id="ani3"> Contenido opción 3 </p>
  13.     <p id="ani4"> Contenido opción 4 </p>
  14.   </span>
  15. </div>
  16.  
  17. <script type="text/javascript">
  18.   $("#adv2").idTabs(function(id,list,set){
  19.     $("a",set).removeClass("selected")
  20.     .filter("[@href='"+id+"']",set).addClass("selected");
  21.     for(i in list)
  22.       $(list[i]).hide();
  23.     $(id).fadeIn();
  24.     return false;
  25.   });
  26. </script>

  1. User Gravatar

    Lucas (wydblog) said,

    Wrote on November 28, 2007 @ 10:16

    muchas gracias por el aporte!

  2. User Gravatar

    Tweet’l - Acortar direcciones URL demasiado largas « Xyberneticos said,

    Wrote on November 30, 2007 @ 22:11

  3. User Gravatar

    angel said,

    Wrote on December 1, 2007 @ 14:26

    Queria saber tb si es posible poner en este tab una loading al dar clik en cada pestana y una vez complete el cargador cargue la informacion en dicha pestana y asi en cada pestana ya que pienso hacer algo parecido pero cada pestana contendra mas informacion y fotitos.

    Si conocen algo parecido alo que me refiero por favor pasarme la url.

    gracias

  4. User Gravatar

    Diego Jiménez said,

    Wrote on December 28, 2007 @ 20:19

    La verdad es que es una herramienta genial y muy muy fácil de usar. He intentado usarla para mi web, pero tengo un problema aparentemente absurdo con el css que me trae de cabeza.

    He conseguido modificar todas las partes del css de el primer ejemplo, pero, no se porqué, ni como, queda un espacio desde que empieza el contenedor hasta los tabs, mi pregunta:

    ¿Cómo puedo quitar ese espacio? ¿Cómo puedo hacer que los botones no estén centrados y se sitúen a la izquierda?

    Muchísimas gracias por todo vuestro esfuerzo, un abrazo.

Seguir comentarios por RSS · TrackBack URI

Nombre: (Necesario)

E-mail: (Necesario)

Website:

Comment: