Cargando...

12 septiembre 2011

Como poner una cajita flotante con botones de: Me gusta de Facebook, twitter y Google +1

boton de facebook twitter y google flotantes
Antes habíamos visto la forma de agregar botones para compartir las entradas usando un sprite, y hoy vamos a ver otra forma de facilitarle a tus usuarios compartir las entradas o artículos de tu blog, usando botones de: Me gusta de Facebook, Twitter y Google +1, dentro de una cajita flotante

Yo no se quien fue el primero al que se le ocurrió esto, (meterlos en una caja flotante) pero es muy popular, y páginas como Mashable, Naldz Graphics, por mencionar algunas,  lo usan.

¿Qué vamos a hacer?

Para conseguir que los botones se mantengan fijos o floten, y tengan la apariencia que queramos, lo que hacemos, es declarar algunas reglas de estilo en el CSS para la cajita que los contiene, y posicionamos los botones dentro de la cajita por medio del margen, con la clase que creamos para poder mover los botones.

En mi blog lo puedes ver en acción,  al estar dentro de cada post o artículo, es ligero, ya que no usa ningún script ni librería externa para que funcione, excepto por los scripts de los botones, por tu parte, puedes personalizar el color de la cajita contenedora a tu gusto, el borde, y el mensaje arriba de los botones;).

¿Cómo poner la cajita con los botones?

Paso 1. Ve al Diseñador de plantillas  Avanzado  Añadir CSS y en el campo a la derecha, pega este código:
#caja-botones{
width: 90px; /*el ancho de la caja*/
height: 240px; /*el alto de la caja*/
position: fixed; /*para que la caja se mantenga fija*/
top: 200px; /*movemos la caja de arriba*/
left: auto;
margin: 80px 0 0 -120px; /*los margenes que puedes editar*/
background-color: #ffffff; /* el color de fondo de la barra*/
border: 1px solid #cccccc; /*el color del borde*/
}
#caja-botones p {
margin: 4px 0;
padding: 0;
text-align: center;
font-size: 12px;
color: #0d72fb; /*el color del texto*/
font-weight: normal;
letter-spacing: 0em; 
}
.b-entradas {
margin: 6px 0 7px 9px;
padding: 0;
}
.b-google {
margin: -2px 0 0 16px;
padding: 0;
}
Importante: 
Con el margen negativo, arriba marcado con rojo (-120px) hacemos que la caja siempre se mantenga en la misma posición, sin importar la resolución de pantalla del usuario, ya que de no ser así, en resoluciones de pantalla pequeñas, la caja se va a ir encima del contenido, o en resoluciones muy grandes, se va a ir hasta el extremo. Esto no sería necesario si por ejemplo usáramos un diseño fluido y declaráramos en porcentajes los márgenes o superpusiéramos el contenido sobre la caja, pero ese es otro rollo.
Esto quiere decir que resoluciones de 1024 pixeles o menos, no verán la caja con los botones, a menos que se use un ancho del blog completo menor de 800 pixeles.

Paso 2: Ve a la edición de HTML de la plantilla, marca la casilla de expandir plantillas de artilugios, y con la ayuda de Ctrl F busca: <data:post.body/> (el primero de arriba hacia abajo) e inmediatamente después pega esto:
<b:if cond='data:blog.pageType == &quot;item&quot;'>
<div id='caja-botones'><p>&#161;Compártelo!</p>
<div class='b-entradas'>
<a class='twitter-share-button' data-count='vertical' data-lang='es' href='http://twitter.com/share'>Tweet</a><script src='http://platform.twitter.com/widgets.js' type='text/javascript'/>
    </div>
<div class='b-entradas'><iframe allowTransparency='true' expr:src='&quot;http://www.facebook.com/plugins/like.php?locale=es_ES&amp;href=&quot; + data:post.url+ &quot;&amp;layout=box_count&amp;show_faces=false&amp;width=80&amp;height=65&amp;action=like&amp;font=arial&amp;colorscheme=light&quot;' frameborder='0' scrolling='no' style='border:none; overflow:hidden; width:80px; height:65px'/>
    </div>
<div class='b-google'>
<g:plusone size='tall'/>
</div>
  </div>
    </b:if>
Puedes cambiar: &#161;Compártelo! por otro mensaje corto que quieras que aparezca arriba de los botones.

 &#161; es el código del signo de admiración inicial: ¡.

El texto del 
botón de Facebook siempre se mostrará en Español: "Me gusta".

Paso 3: Con la ayuda de Ctrl F, busca: </body> y justo antes, pega el script del botón +1 de google:

<!-- Place this render call where appropriate -->
<script type="text/javascript">
  window.___gcfg = {lang: 'es'};

  (function() {
    var po = document.createElement('script'); po.type = 'text/javascript'; po.async = true;
    po.src = 'https://apis.google.com/js/plusone.js';
    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(po, s);
  })();
</script>
Nota: Si ya tienes el script pegado ahí, porque usas los botones para compartir tu blog, incluyendo el de +1, entonces no lo pongas.

Paso 4: Internet Explorer 6 tiene problemas con la posición
fixed, cuando esta no se usa en el body (background o fondo de la plantilla), pensando en eso,  tenemos tres opciones: (1)ignorarlo, (2)hacerlo funcionar, o (3) evitar que se vea, eligiendo la última opción, tendrías que agregar esto después de ]]></b:skin> 
<!--[if IE 6]>
<style type="text/css"
>
#caja-botones{
display: none;
}
</style>
<![endif]-->
Con el código anterior, estamos condicionando, para que no se muestre la caja en IE6 (Internet explorer 6).

*Otra opción es usar un hack, en el que se puede declarar cualquier propiedad para IE6 y solo lo al CSS del Paso 1:

* html #caja-botones {
    display: none;
}

Paso 5: checa en vista previa y si todo luce bien, guarda los cambios. La caja con los botones aparecerán al estar dentro de cada post o artículo.

Notas:
  • Puedes agregar otros botones, solo tienes que aumentar el tamaño del alto de la caja (height) 
  • Siempre es bueno ir a obtener los códigos de los botones en las respectivas páginas, para no perderse de actualizaciones, etc.
  • Esta caja flotante, no debería ser la única opción para compartir entradas,  ya que en resoluciones pequeñas no se verá, por ello, es aconsejable, usar la caja + los botones ya sean los de Blogger para compartir entradas u otros personalizados dentro del mismo post.
ginas oficiales de los botones:
Facebook
Twitter
Google



Referencias:

También puedes ver como hacer funcionar la posicion fija en IE6:
fixed positioning in IE6


Puedes checar la caja en distintas resoluciones de pantalla en test size.

[*Actualizado: Oct/07/2011]
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.

44 comentarios :

  1. Hola Ro!, no te acongojes, dime que es exactamente lo que pasa y te digo donde esta el fallo :).

    ResponderEliminar
  2. Hola Obed,

    Recuerda que la caja con los botones se va a ver al estar dentro de las entradas, en vista previa no la vas a ver, no se si sea eso, necesitas mostrarme el resultado o decírmelo, de ese modo me das una pista de lo que pasa y te puedo dar una mejor respuesta...

    Hasta luego!

    ResponderEliminar
  3. Pues seguí todos los pasos, incluso quité el CSS de las otras que tenía para que no interfiriera... pero pues no se veía, aunque estoy leyendo que es vista previa no se ve... lo volveré a intentar =)

    ResponderEliminar
  4. Así es Ro, los botones no se van a ver en vista previa, y se van a ver hasta que te metes a las entradas, ya que hay una condición es el código para que esto ocurra: <b:if cond='data:blog.pageType...,

    En este caso, la vista previa es solo para ver que todo esté en orden en la plantilla, ya que a veces al agregar códigos, los podemos poner mal o borrar algo por accidente y así nos aseguramos de que todo esta bien :).

    Me cuentas como te fué, ok...?

    Salu2 y suerte!

    ResponderEliminar
  5. Oye Karla, el Artisteer es bueno para hacer plantillas o mejor otra cosa?

    ResponderEliminar
  6. Que maravilla, ha funcionado, gracias !!

    ResponderEliminar
  7. Perdón , me brinqué tu comentario :$.

    Nunca he probado Artisteer, así que no puedo opinar o compartirte la experiencia aunque la verdad no se me antoja ya que con esos programas no aprendes nada jaja, bueno son prácticos y eso es un punto positivo.

    Que bueno que lo lograste sin contratiempos Misericordia †, me alegra :).

    Hasta luego!

    ResponderEliminar
  8. Hola! no me funcionó. Les agradecería bastante si me pueden ayudar. Yo uso este template http://www.dzignine.com/2011/01/focus-point/

    ResponderEliminar
  9. Hola Diego!, tal vez haya una confusión, la caja con los botones la vas a ver al estar "dentro" de los posts no en la página principal, ni tampoco al poner vista previa, checa ese dato.

    También si quieres déjame la URL de tu blog.

    ResponderEliminar
  10. Si, ya tuve todo eso en cuenta pero como ustedes sabrán algunos templates varían en la composicion del lenguaje html.

    Nose de que te puede ayudar ke te deje la direccion de mi blog (pues me parece mas relevante la direccion del template http://www.dzignine.com/2011/01/focus-point/ )pero aqui la dejo "dirtywatcher.blogspot.com" esperanzando en que me puedan ayudar.

    Gracias por la rápida respuesta.

    Diego

    ResponderEliminar
  11. Hola Diego,

    Vi tu blog, pero no lo tienes agregado, lo quitaste?...

    ResponderEliminar
  12. Ya lo puse de nuevo.

    Mira aca te dejo el template. Quiza podrias bajarlo, editarlo y subirlo de nuevo para hacerme feliz. :)

    http://www.mediafire.com/?m9fzzz3opejgnv4

    ResponderEliminar
  13. Ya vi que agregaste el CSS Diego, ahora solo falta que agregues el HTML, del paso 2 y el script del botón como explico arriba, es fácil, ya lo verás, solo sigue los pasos.

    Suerte y me cuentas si lo lograste...

    ResponderEliminar
  14. Ya he agregado todo, Karla. Tanto el css como el html.

    ResponderEliminar
  15. Diego, envíame la plantilla que usas por correo a:

    compartidisimo-blog[arroba]hotmail.com

    y con tiempo la veo con detalle...

    ResponderEliminar
  16. por favor puedes decirme, como lo pongo esa cajitta al lado derecho del blog.

    Es que en el lado izquierdo no tengo espacio, y lo quiero al lado derecho, que flote en la mano derecha.

    gracias

    ResponderEliminar
  17. Hola Zeus!

    Siempre es mejor que este tipo de cosas en posición fija estén a la izquierda, generalmente es más fácil de controlarlas, y además son más visibles para el usuario.

    Puedes moverlo a la derecha cambiando los valores del margin y el left: auto;

    ...por esto:

    margin-right:-120px;
    right: 120px;

    Va a depender de la estructura de tu plantilla, puede ser que en resoluciones pequeñas se vaya encima del contenido, y entre más acerques la caja al contenido más se irá, pruébalo y lo dejo a tu criterio; en cuanto a los valores los puedes editar, según tu necesidad.

    Puedes probar como se ve en distintas resoluciones de pantalla en "test size", arriba puse el enlace.

    ;) Suerte!!.

    ResponderEliminar
  18. Muchas gracias nena, por cierto gracias, bueno he optado por utlizar https://www.addthis.com/get/sharing#.Totlx3J6hdh

    La cajita si me funciona, pero queria a la derecha, ya que no habia espacio libre para ello y se veiia algo anormal encima de los contenidos..

    de todos modos gracias, gracias.

    ResponderEliminar
  19. De nada Zeus GM,

    Me encanta Addthis! yo lo tenía agregado aquí junto a los botones, pero luego lo quité por que en lo tweets hace referencia a AddThis y no a tu cuenta, chécalo ;).

    ResponderEliminar
  20. Este comentario ha sido eliminado por el autor.

    ResponderEliminar
  21. oh si que rayos, pero no solo hace referencia a addis, tambien al blogg, mira:

    http://i43.servimg.com/u/f43/15/63/49/79/social10.png

    Bueno, y hay alguna manera de quitar esa referencia a addis, aunquen no hay problema, ya que eso pertenece a addis.. mmm-

    bye linda

    Pd: soy Zeus GM

    ResponderEliminar
  22. Puedes agregarlos, sin usar AdThis sin ningún problema :).

    ResponderEliminar
  23. Hola Karla, me funciono a la perfección, pero el html que tengo con el nombre de la cabecera de mi blog se a corrido mas abajo no se a que se deberá...

    Por cierto me gustaría que mejor la cajita se quedara quieta donde esta al darle con el scoll del mouse.

    Mi blog: http://generandosensacion.blogspot.com/2011/09/mi-frikismo-al-limite.html

    ResponderEliminar
    Respuestas
    1. Hola América Quinteros, ¿estás segura que la descripción del blog se recorrió cuando pusiste la cajita?

      No debería de ocurrir, puesto que la estas colocando en la sección de las entradas.

      Lo siento pero no entiendo esto:
      me gustaría que mejor la cajita se quedara quieta donde esta al darle con el scoll del mouse.

      Eliminar
    2. OK probare quitando los códigos, si no se presentan problemas, te lo comento :D

      Eliminar
  24. Ah también me fije que al poner los botones, en la sidebar: Afiliados le agregue un expandir/contraer con Scriptaculous y le doy clic y me lleva al top del blog...

    ResponderEliminar
    Respuestas
    1. Qué raro, desconozco si algunos de los scripts de los botones, tengan algún conflicto con la librería de scriptaculous, nunca he escuchado eso, si quieres quítalos, y verifica si se expande, para estar segura si realmente los botones están creando el conflicto.

      Me cuentas...

      Eliminar
    2. Se a arreglado todo de todo, el efecto deslizante y el titulo de la cabecera, no se ve corrido :/, que sera...

      Eliminar
    3. Me fije que en la esquina superior izquierda se ve una flecha como de un comentario de html cortado:

      -->

      Al parecer esta cerca de donde están los scripts.

      Bueno si no fuera compatible Karla, siempre habrán mas opciones también se me ocurrió poner los botones como imágenes a lado de las entradas relacionas con una tabla, lo intenten pero hay una condicional bastante molesta que no se cuando empieza, si no hubiera caso con esto, me podrías ayudar como crear la tabla con las etiquetas ordenadas? :)

      Se te agradece tu ayuda y muchísimo :D

      Eliminar
    4. Sabes que tienes un error en esto:

      <!--[if IE 6]>
      <style type="text/css">
      #caja-botones{
      display: none;
      }
      </style>
      <![endif]-->

      ...debe estar después de ]]></b:skin>, "no antes".

      Eliminar
    5. Gracias Karla funciona a la perfección gracias, al final yo me equivoque con el antes y después, confundí ese código... Ah por cierto me refería que la cajita se quede estática con una posición única, ya que al bajar esta también lo hace, no se si me explico bien...

      Eliminar
    6. o quizás que cuando la cajita desaparezca al pasar el:

      div id="content_b"

      ya que se ve mal al final de la pagina...

      Eliminar
    7. Qué bueno que ya se arregló todo America :)

      Bueno, en ese caso cambia la posición de la cajita de "fixed" a "absolute", en esta parte:

      position: fixed; /*para que la caja se mantenga fija*/

      Buen día.

      Eliminar
  25. Si si :D!!

    Funciono ahora si que si xD muchísimas gracias Karla, sobretodo por la paciencia :)

    ResponderEliminar
    Respuestas
    1. De nada América, que bueno que todo resultó como querías ;)

      Eliminar
  26. Hola! que tal. si quiera agregarlo a mi web. con dreamweaver, como serian los codigos? Gracias. Saludos

    ResponderEliminar
    Respuestas
    1. No sabría decirte por que nunca he usado dreamweaver Anónimo. Suerte ;)

      Eliminar
  27. Hola Karla, gracias por compartir!
    A mí me quedan fijos en la parte de abajo, no se supone que tienen que flotar? Hay alguna posibilidad de ponerlos arriba de la entrada pero en forma horizontal, me gustaría más ponerlos así :-) Bueno, gracias por todo!!

    Besos

    Pato

    ResponderEliminar
    Respuestas
    1. Hola Patricia, así es, deben flotar, es decir, al desplazarte de forma vertical en la página, deben de quedar siempre visibles en la misma posición.

      Claro que es posible, pero dime, ¿quieres que floten estando en posición horizontal, o simplemente que se muestren al final o al principio del post de forma horizontal?

      Eliminar
  28. Holaa guapis!!
    A mi me gustaria poner una caja flotante con un boton de me gusta, que se deslizara por el blog, a menos de que el usuario le diera al boton "me gusta" o a cerrar¡ tu sabrias como hacerlo??
    Mira es algo parecido a lo que tiene esta pagina http://es.notfollow.me/twitter/who-not-follow Como ves, antes de que salga la web, sale una cajita con la opcion de dar like a la pagina!!

    Me ayudariaaas un montonnnnn!

    ResponderEliminar
    Respuestas
    1. Hola Jenny!
      No tengo idea de lo que quieres hacer, en la página que mencionas no veo nada parecido a lo que me dices...

      Eliminar