24 octubre 2011

Crear una sección con pestañas para agregar cualquier gadget usando jQuery

sección con pestañas

Anteriormente, ya te había hablado como agregar una sección con pestañas para agregar ahí cualquier widget,  y hace unos días vi en net tus, una propuesta para crear secciones con pestañas que tiene un efecto deslizante. Me gustó para adaptarla a Blogger y poner ahí gadgets.

Esto permite mostrar contenido de una manera dinámica, sin ocupar mucho espacio, puedes verlo funcionando en el blog de demostración; ¿te gusta?, entonces veamos como ponerlo en tu blog.

Cómo hacerlo paso a paso (Nuevas Plantillas)

Paso 1: Primero agregas los estilos o CSS, y para ello, vas al Diseñador de Plantillas > Avanzado >Añadir CSS, (en la nueva interfaz, necesitas ir a Plantilla > Personalizar, para ingresar al Diseñador de Plantillas), y en el campo pegas lo siguiente:

/* Sección con pestañas*/
.boxy {
width: 100%;
margin: 15px 5px;
padding: 0;
background: #f3f1eb; /*el color de la seccion*/
border: 1px solid #dedbd1;
}
.boxy ul {
margin: 10px 2px 0 10px;     
padding: 0;
}
.boxy ul li {
margin: 0 0 10px 0;     
padding: 0;
border: none;
}
.boxy li a {
color: #123456;
text-align: left;
margin: 0;
padding: 0;
}
.boxy a:hover {
color: #009;
text-decoration: underline;
}
.tabnav li {
display: inline;
font-size: 12px;
}
.tabnav li a {
text-decoration: none;
text-transform: uppercase;
line-height: 180%;
color: #222;
font-weight: normal;
margin: 0;
padding: 4px;
outline: none;
}
.tabnav li a:hover, .tabnav li a:active, .tabnav li.ui-tabs-selected a {
background: #dedbd1; /*color de la pestaña activa y hover*/
color: #222;
text-decoration: none;
}
.tabdiv {
margin: 0 10px 10px;
background: #FFF;
border: 1px solid #dedbd1; /*color de borde*/
padding: 4px 2px;
}
.tabdiv li {
list-style: none; 
margin: 0;
padding: 0;
}
.ui-tabs-hide {
display: none;
}
#col1, #col2, #col3 {
margin: 5px;
padding: 0;
font-size: 12px;
}
Si vas a usar gadget que tengan listas puedes agregar una imagen como viñeta en cada elemento de la lista, y para ello buscas:
           .tabdiv li {
            list-style: none; 
            ...
            }
...y cambias: list-style: none; por  list-style-image: url(mi_imagen.gif);.


Paso 2: Vas a a la edición de HTML de la plantilla y agregas jQuery y los scripts antes de </head> :
<script src='http://ajax.googleapis.com/ajax/libs/jquery/1.6.4/jquery.min.js' type='text/javascript'/>
<script src='//sites.google.com/site/scriptskarla/archivos/jquery-ui-personalized-1.5.2.packed.js' type='text/javascript'/>
<script type='text/javascript'>
//<![CDATA[
$(document).ready(function() {
$('#tabvanilla > ul').tabs({ fx: { height: 'toggle', opacity: 'toggle' } });
});
//]]>
</script>

IMPORTANTE
  • En el caso del archivo del segundo script que viene en la parte de morado, te recomiendo ampliamente que lo guardes en tu propio servidor.
  • Si ya usas jQuery, no lo agregues, pero si podrías por ejemplo, actualizar la versión.
Paso 3:  Vas a la Edición de HTML de la plantilla, y con la ayuda de ctrl F buscas </aside> pensando en que lo vas a poner en la columna derecha de tu blog y como último elemento en la columna:

 <aside>
          <macro:include id='main-column-right-sections' name='sections'>
            <macro:param default='2' name='num' value='1'/>
            <macro:param default='sidebar-right' name='idPrefix'/>
            <macro:param default='sidebar' name='class'/>
            <macro:param default='true' name='includeBottom'/>
          </macro:include>
          </aside>


Inmediatamente después agregas el HTML, y editas los títulos de cada pestaña,  que vienen marcados de rojo, y que deberán coincidir con cada gadget que pienses poner:
<!--sección con pestañas-->
<div class='boxy' id='tabvanilla'>
    <ul class='tabnav'>
    <li><a href='#pestana1'>Lo + nuevo</a></li>
    <li><a href='#pestana2'>Comentarios</a></li>
    <li><a href='#pestana3'>Lo + visto</a></li>
    </ul>
                                                <!--/pestana1--> 
    <div class='tabdiv' id='pestana1'>
    <b:section id='col1' maxwidgets='1' showaddelement='yes'>
</b:section>
</div>
  <!--/pestana2-->
<div class='tabdiv' id='pestana2'>
    <b:section id='col2' maxwidgets='1' showaddelement='yes'>
</b:section>
</div>
   <!--/pestana3-->
   <div class='tabdiv' id='pestana3'>
   <b:section id='col3' maxwidgets='1' showaddelement='yes'>
</b:section>
</div>
    <!--featured-->
         </div><!--/sección con pestañas-->
Nota: Si quieres que aparezca como primer elemento buscas:

<div class='column-right-inner'>


Inmediatamente después de esa linea lo agregas, también lo puedes poner antes del cierre de la etiqueta </aside> y quedará dentro de la envoltura, no hay diferencia ya que queda dentro del mismo div.


*Para las plantillas anteriores o de Diseño, buscas la envoltura de la columna lateral:


  <div id='sidebar-wrapper'>


...y si quieres que quede como primer elemento, lo pones inmediatamente después de esa linea, sino, antes del cierre del div "</div>" de dicha envoltura de la columna lateral. Generalmente así viene identificada, debes estar segura (o).

Paso 4: Checas en vista previa y si todo luce bien, guarda los cambios.


Paso 5: Después vas a los elementos de la página o Plantilla en el nuevo Diseñador de Plantillas y agregas los gadgets respectivamente haciendo que coincidan con los títulos de cada pestaña y guarda los cambios.


Puedes personalizar los colores de fondo de las secciones y pestañas así como el color de fuentes etc.
Funciona en todos los navegadores incluyendo Internet Explorer 6.

*Actualizado Oct/31/11

No olvides suscribirte, para recibir todas mis actualizaciones, directamente a tu email.

Ingresa tu correo electrónico:

Recuerda confirmar tu suscripción, haciendo click en el enlace que recibirás por email.

54 comentarios:

  1. Pero que bueno!!!
    Y esto crees que se puede añadir en una pagina, como si fuera un gadget normal y corriente? O tiene que colocarse en un lugar especifico como en la columna lateral?
    Me iria super bien para un concurso, dividirlo en Condiciones, Premio... Ya me entiendes ;)

    Un saludo!

    ResponderSuprimir
  2. Se puede agregar en cualquier sección, aquí te digo como agregarlo en la columna lateral.

    ;)Buen día!

    ResponderSuprimir
    Respuestas
    1. a mi me gustaría saber como poder mover su ubicación, lo quiero entre mis gadgets y al colocarlo como gadget no puedo nadir las listas

      Gracias de ante mano

      Suprimir
    2. Para eso, tendrías ponerlo arriba, como primer elemento de la columna, echa un vistazo a este post donde la sección se coloca arriba:

      http://www.compartidisimo.com/2011/06/crear-una-seccion-con-pestanas-para.html

      Luego, tendrás que agregar otra sección para colocar gadgets, y para ello echa un vistazo a esto:

      http://www.compartidisimo.com/2011/07/agregar-una-seccion-nueva-en-la-columna.html

      Suerte ;)

      Suprimir
    3. muchas gracias voy a echar un vistazo ^^

      Suprimir
    4. listo! muchas gracias! =D

      Suprimir
  3. Tengo problemas con el , en mi blog no aparece... no se por que.

    ResponderSuprimir
  4. < - / aside>

    esa cosa no aparece. tampoco no lo encuentro al buscar con el control + f

    lo escribo con - por que en mi anterior respuesta desaparecio

    ResponderSuprimir
  5. Excelente entrada!! si quieres visitar y seguir mis bogs, te invito!!

    http://mariela-parma.blogspot.com/

    http://marielapreescolar.blogspot.com/

    saludos
    Mariela Parma

    ResponderSuprimir
  6. Hola Junior, esa etiqueta se encuentra en las nuevas plantillas, no en las anteriores o de Diseño de Blogger.

    Si lo quieres poner en las anteriores, echa un vistazo a esta entrada:

    http://www.compartidisimo.com/2011/06/crear-una-seccion-con-pestanas-para.html

    Gracias Mariela.

    ResponderSuprimir
  7. ¿No hay forma de hacer esto sin lo de aside? ¿O algún modo de añadirle lo de aside a las plantillas antiguas?
    Gracias de antemano :)

    ResponderSuprimir
  8. La etiqueta aside es propia en el HTML5, por eso las plantillas nuevas lo usan, ya que así está declarado el documento.

    Si lo vas a poner en la columna lateral, entonces tienes que buscar la envoltura de la columna que generalmente viene definida como: sidebar-wrapper, y ponerlo ahí dentro, ya sea al principio, para que aparezca como primer elemento, o al final después de la sección donde estan los gadgets, para que aparezca al último.

    Actualice el post agregando algunos detalles para el caso de plantillas de Diseño, echa un vistazo.

    Espero sea útil.

    ResponderSuprimir
  9. No puedo agregarlo y que funcion otro script de mi pagina debe estar chocando el, ya que todo se car en una sola columna..

    ResponderSuprimir
  10. Hola SomosMovies, no sé cual sea la razón de tanto acelere con esos carritos chocones, ¿cuál es el blog en el que lo aplicaste?

    ResponderSuprimir
  11. ¡Hola! Me encanta el truco y ya lo tengo implementado en en el blog en el que estoy desarrollando el nuevo diseño. Pero tengo una pregunta...

    ¿Es posible que este truco con pestañas esté en medio del sidebar? O sea, no al principio ni al final. Es para poner algunos elementos encima y otros abajo, y que no quiero que vayan en este elemento con pestañas.

    ¡Muchas gracias por la ayuda!

    Pd: ¡Ah, amo tu blog, me ha ayudado taaaanto! :'D

    ResponderSuprimir
  12. Karla como te podría contactar por privado? MP o algo..

    ResponderSuprimir
  13. Angela, echa un vistazo a esta entrada:

    http://www.compartidisimo.com/2011/07/agregar-una-seccion-nueva-en-la-columna.html

    Espero sea útil.

    SomosMovies,En cuanto pueda agregaré el formulario a la columna lateral, que ya tenía pero quite temporalmente, por lo pronto ve al enlace del menú: "Comparte" y usa ese formulario.

    ResponderSuprimir
  14. Hola Karla,

    Mi problema es que mi plantilla la he generado con Artisteer y no consigo colocar los divs en la sidebar, porque no consigo identificarla. ¿Cómo lo hago? He conseguido ponerla pero al instalar los gadgets los posts se bajan.

    http://ajedrezalaescuela.blogspot.com

    ResponderSuprimir
  15. El asunto con esas plantillas es que tienen identificado prácticamente todos los divs de manera distinta; busca:

    <div class='art-layout-cell art-sidebar1 section' id='sidebar1'>

    Inmediatamente después pones la sección.

    Checas en vista previa y si todo luce bien guarda los cambios.

    Me cuentas...

    ResponderSuprimir
  16. No encuentro ese div. Lo tengo colocado en este otro, pero me queda por encima de la barra lateral

    div id='crosscol-wrapper' style='text-align:center'

    ResponderSuprimir
  17. Hola Diego, búscalo con Ctrl F.

    ¿Leíste mi comentario anterior?, encontré un error en tu plantilla, probablemente haya mas, pero necesitas arreglarlo o vas a tener problemas en la visualización de tu blog, lo dejé acá:

    http://www.compartidisimo.com/2011/07/crear-botones-en-los-enlaces-del-widget.html

    Buen día!

    ResponderSuprimir
  18. Hola Karla,

    Es curioso, lo he buscado descargándome la plantilla y con el wordpad y nada, directamente en la plantilla en edición html de blogger y nada y sin embargo, en la consola del chrome sí que sale, ¿Cómo puede ser eso?

    ResponderSuprimir
  19. mmm, yo lo veo ahí en tu código fuente, está un poco más abajo de la sección del crosscol:

    <div id='crosscol-wrapper' style='text-align:center'>
    <!--sección con pestañas-->
    <div class='boxy' id='tabvanilla'>
    <ul class='tabnav'>
    <li><a href='#pestana1'>Artículos</a></li>
    <li><a href='#pestana2'>Categorías</a></li>
    <li><a href='#pestana3'>Seguidores</a></li>
    </ul>
    <div class='tabdiv' id='pestana1'>
    <div class='section' id='col1'></div>
    </div>
    <!--/pestana1-->
    <div class='tabdiv' id='pestana2'>
    <div class='section' id='col2'></div>
    </div>
    <!--/pestana2-->
    <div class='tabdiv' id='pestana3'>
    <div class='section' id='col3'>/div>
    </div>
    <!--featured-->
    </div><!--/sección con pestañas-->
    <div class='crosscol section' id='crosscol'></div>
    </div>
    <div class='art-content-layout'>
    <div class='art-content-layout-row'>
    <div class='art-layout-cell art-sidebar1 section' id='sidebar1'><div class='widget HTML' id='HTML4'>
    <h2 class='title'>Síguenos en...</h2>

    ...lo resaté de negrita...

    ResponderSuprimir
  20. Sí, ya lo he visto en código fuente del firefox y en la consola de chrome, pero no aparece así en la plantilla. Si me dices dónde mandarte el archivo de la plantilla. LO que me extraña es que en el código fuente de la página sea vea una cosa y en la plantilla otra.

    ResponderSuprimir
  21. Descarga la plantilla y envíame el archivo (ojo: no el código completo) a:

    karlaenlinea[arroba]gmail[punto]com y en la noche lo veo.

    ResponderSuprimir
  22. ¿Te mando entonces el archivo de la plantilla en xml o sólo la parte donde está?

    ResponderSuprimir
  23. El archivo, quiero verlo completo ;)

    ResponderSuprimir
  24. Perdón Diego, sin querer eliminé tu comentario anterior, sabes, no me llego nada :S

    ResponderSuprimir
  25. Hola Karla,
    Hice todo como lo mencionaste en el tutorial, pero en vez de quedar las pestañas y cada sección, me queda una sección arriba de la otra, no se si realice algo mal cuando copie todo. Te dejo la dirección de mi blog: www.supermachmotor.com
    Gracias.

    ResponderSuprimir
  26. Hola Miguel, parace que todo está bien en lo que pusiste, pero según veo, el script que yo archivo que está de morado (por cierto te recomiendo que tu guardes para evitar problemas) está siendo bloqueado, por ello no se ocultan las secciones.

    No se exactamente que lo esté bloqueando, pero podemos ir quitando los errores para saber que es lo que lo afecta.

    Primero te recomiendo quitar esto, que también fué bloqueado:

    <!-- Inicio codigo ElPageRank.com -->
    <script language="JavaScript" src="http://www.elpagerank.com/pr/supermachmotor.blogspot.com/5/0"></script><noscript>
    <a target="_blank" href="http://www.elpagerank.com/"><img src="http://www.elpagerank.com/pr/supermachmotor.blogspot.com/5/1" /></a></noscript>
    <!-- Fin codigo ElPageRank.com -->

    Me cuentas...

    ResponderSuprimir
  27. Gracias Karla, una consulta, a que te refieres con que guarde el script morado? Lo tengo que poner en otra sección?
    Gracias

    ResponderSuprimir
  28. Al que resalté de color morado en el código del paso 2, solo copia la URL del archivo que viene ahí, no te asustes puse la URL sin protocolo HTTP por eso empieza con //
    ponla en la barra de direcciones de tu navegador para descargarlo, luego súbelo a un servidor, se puede en Google Sites, echa un vistazo a este tutorial en Ciudad Blogger, aunque ya cambiaron la apariencia de la página de Google Sites sirve ;)

    Después pones la URL del archivo en sustitución a la que está ahora.

    http://ciudadblogger.com/2011/01/como-subir-archivos-en-google-sites.html

    Suerte!

    ResponderSuprimir
  29. Hola Karla, gracias por tus consejos. Lo que si aun no logro identificar que bloquea al script para que se oculten las secciones. Si tenes alguna idea de que puede ser te agradeceria.
    Saludos

    ResponderSuprimir
  30. Sabes Miguel que no sé que es lo que lo está bloquendo, sólo sé que no se está ejecutando, probablemnete sea un problema con los ID's (los Tabs) si quieres mándame el docto XML de la plantilla por correo y el fin de semana la revisó.

    Puedes enviármelo por correo desde mi perfil de Google+

    Buen día!

    ResponderSuprimir
  31. Este comentario ha sido eliminado por el autor.

    ResponderSuprimir
  32. Hola karla gracias por compartir todo este conocimiento.
    Estoy tratando de agregarlo a mi blog en las pestañas quiero agregar las redes sociales que una sea el Google plus, en la otra el facebook y en el otro el twitter todas estas se agregan con los plugin de terceros y se agregan por el gadget de blogger html,javascript como ya lo debes de saber.
    Ahora cuando trato de agregarlos para que aparezcan por pestañas solo me aparece una lista con los tres nombres y debajo me aparecen los tres gadgets en una sola lista.
    Si quieres te puedes mirar mi blog para que mires tu misma el error www.lascosasdealan.blogspot.com
    gracias por la solución que me puedas brindar.

    ResponderSuprimir
    Respuestas
    1. Eché un vistazo a tu blog Alan, pero no veo agregado esto, necesito ver el resultado de otro modo, lamentablemente no te puedo decir que pasa en concreto...

      Suprimir
    2. Karlas Gracias por la pronta respuesta si es que quite le panel para no presentar errores en el blog pero tengo una captura de pantalla lo puedes ver aca.http://goo.gl/pkzKK

      Suprimir
    3. Lo veo mas o menos, al parecer no se esta ejecutando la función, y puede ser por varias razones:

      Usas scriptaculous, esta mal puesto el orden de jQuery con respecto a la función con el script, etc, lo mejor es que lo vea Alan, así veo el código fuente ;)

      Suprimir
    4. Saludos Karla yo creería que es mas por el lado de Scriptaculous.
      Que necesitas para ver mi código te mando la copia de seguridad de mi template?.
      Quedo atento alancescobar@gmail.com lascosasdealan@gmail.com

      Suprimir
    5. No es necesario Alán, sólo necesito ver el blog, desde ahí puedo ver todo.

      Si usas scriptaculous, definitivamente tendrás problemas, y es mejor quitarlo, ¿o lo usas para algo?, hay una hack, para usar las dos (jQuery + scriptaculous) pero creo que no vale la pena usar dos librerías, es mejor explotar una sola pues se puede conseguir cosas similares, lo único que pueden ocasionarte usar las dos, es que tu blog cargue muy lento. Habrá que analizar eso ;)

      Suprimir
  33. Hola que tal.. hace unos dias encontre tu pagina y me parecio muy buena, felicitaciones! :)

    mi consulta sobre este tema es que estoy queriendo hacer un pie de pagina parecido al tuyo y pensaba poner esto abajo de todo, como tendria que agregarlo? muchas gracias...

    ResponderSuprimir
    Respuestas
    1. Ahora que me dejas esa carita triste me doy cuenta que me pase tu comentario. Lo siento.

      Si la quieres poner el el footer, entonces deberás buscar la sección del footer en tu plantilla y poner ahí la sección con pestañas y ver si te gusta el resultado.

      Puede variar el código un poco, depende de la plantilla, pero generalmente el ID se muestra como footer o footer-wrapper, dentro del Div o etiqueta footer (en HTML5), según sea el caso, puedes colocar el código de la sección.

      Suerte!

      Suprimir
    2. Gracias por responder! voy a intentarlo...

      Suprimir
  34. Este comentario ha sido eliminado por el autor.

    ResponderSuprimir
  35. Hola Karla. Felicitaciones por tu blog ^^ Quería hacerte una pregunta... si quiero agregarle una pestaña mas... podría? cual sería el codigo? repetir una vez mas una pestaña? Muchas gracias de antemano por la respuesta. Un saludo

    ResponderSuprimir
    Respuestas
    1. Abajo de esta linea:

      <li><a href='#pestana3'>Lo + visto</a></li>

      pones esta:

      <li><a href='#pestana4'>Titulo del elemento</a></li>

      Cambias el texto de: "Titulo del elemento" por el propio (el título del widget que estará ahí.

      y antes de esto:

      <!--featured-->

      pones esto:

      <!--/pestana4-->
      <div class='tabdiv' id='pestana4'>
      <b:section id='col4' maxwidgets='1' showaddelement='yes'>
      </b:section>
      </div>

      Luego en el CSS, cambias esto:

      #col1, #col2, #col3 {

      por esto:

      #col1, #col2, #col3, #col4 {


      Suerte!

      Suprimir
  36. Hola Karla! siento molestarte de nuevo, pero es que sección con pestañas no actualiza bien, se queda como atrancada, y por mas que rectifico el la lista de entradas recientes, no hay forma de que se quede bien.
    ¿Alguna solución?
    Gracias de antemano ^^

    ResponderSuprimir
    Respuestas
    1. Hola Khima, pues yo lo veo funcionando bien, y lo probé en IE, Firefox y chrome.

      Suprimir
    2. Pues vaya, en chrome a mi me sale repetida la segunda y aparece en segundo y tercer lugar...
      Voy a seguir investigando =S
      gracias

      Suprimir
    3. me sigue pasando en todos los navegadores, se repite la segunda y la tercera =S y no se donde puede estar el fallo

      Suprimir
    4. Hola Khima, eché otro vistazo a tu blog, y lo que veo es un problema que no tiene nada que ver con el funcionamiento de las secciones de este elemento. Cuando me comentaste que se repetía el contenido, yo creí que te referías a que aparecía el mismo contenido en la sección de pestaña 1 (lo + nuevo) y la sección de la pestaña 2 (lo + visto), y según puedo ver ahora lo que se repite es el elemento de la lista de blogs que usas en la primera pestaña. He ahí la confusión :)

      Bueno, ese es un problema que se está originando en ese gadget al usarlo para mostrar determinadas entradas en el blog, es decir es un problema específico del gadget no de la sección en sí. Lo que te recomiendo es que pruebes este script que hace que se muestren las últimas entradas con determinadas etiquetas:

      http://ciudadblogger.com/2011/05/ultimas-entradas-por-categorias-con.html

      Suerte!

      Suprimir
    5. Gracias de nuevo ^^
      lo voy a probar =P, un besito!

      Suprimir