martes, 26 de febrero de 2013

Enlaces de navegación que aparecen al bajar la página y muestran el nombre de las entradas


Los enlaces de navegación son esos que aparecen al final de la página que dicen "Entradas antiguas", "Entradas recientes" y "Página principal" y nos sirven para desplazarnos por las entradas del blog. Lo que haremos con esta entrada son dos cosas:

  1. Cambiar los textos "Entradas antiguas" y "Entradas recientes" por los títulos de las entradas.
  2. Hacer que éstos datos aparezcan en un recuadro "desvaneciente" cuando se baje el scroll de la página.

Puedes verlo en funcionamiento en este blog de pruebas, al bajar el scroll aparecerán los enlaces de navegación mostrando los títulos de las entradas que anteceden y preceden al post.

Esta forma de mostrar los enlaces de navegación sólo se verá en las entradas individuales, ya que en la portada y demás partes del blog se seguirán mostrando como siempre.

La instalación es muy sencilla en realidad. Primero entra en Plantilla | Edición de HTML, marca la casilla Expandir plantillas de artilugios y busca esta línea:
<b:include name='nextprev'/>
Y cámbiala por esto:
<b:if cond='data:blog.pageType != &quot;item&quot;'>
<b:include name='nextprev'/>
</b:if>
<b:if cond='data:blog.pageType == &quot;item&quot;'>
<div id='blog-pager-note'>
<h4>También hemos publicado:</h4>
<b:include name='nextprev'/>
</div>
</b:if>
Ahora pega antes de </head> lo siguiente:
<b:if cond='data:blog.pageType == &quot;item&quot;'>
<script src='http://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js' type='text/javascript'/>
<script>
// <![CDATA[
$(function() {
$('#blog-pager-note').toggle()
.css({
width: '520px',
height: '150px',
position: 'fixed',
padding: '1em',
bottom: 0,
right: 0,
background: 'url(https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhKgdmMjn6EecA65-7lHOMV2xv9BDnEEeUXXp5g4KLAg9wiUJcHhGXD8LXjYNrozFy8fzp_TK2nZCak2tNEMHj0Sobbfn5jjecaeAZbJmnm1l8bMrNEh326ZnEuKtnl3WSquDRBe1dk_9Q/s10/negro85.png)'
});

$(window).scroll(function() {
if($(this).scrollTop() > 150) {
$('#blog-pager-note').fadeIn();
} else {
$('#blog-pager-note').fadeOut();
}
});
});
$(document).ready(function(){
var newerLink = $("a.blog-pager-newer-link").attr("href");
$("a.blog-pager-newer-link").load(newerLink+" .post-title:first", function() {
var newerLinkTitle = $("a.blog-pager-newer-link:first").text();
$(".blog-pager-newer-link").html("<div>Entrada anterior:</div>" + newerLinkTitle);
});
var olderLink = $("a.blog-pager-older-link").attr("href");
$("a.blog-pager-older-link").load(olderLink+" .post-title:first", function() {
var olderLinkTitle = $("a.blog-pager-older-link").text();
$(".blog-pager-older-link").html("<div>Entrada siguiente:</div>" + olderLinkTitle);
});
});
// ]]>
</script>

<style type='text/css'>
<!--
#blog-pager-newer-link {float:left;clear:both;line-height:30px;}
#blog-pager-older-link {float:left;clear:both;line-height:30px;}
.home-link {display:none;}
.blog-pager-older-link, .blog-pager-newer-link {
background-color: transparent !important;
background-image: none !important;
border:0 !important;
color:#0577AB !important; /* Color de los títulos de las entradas */
float: left;
width: 500px;
clear:both;
}
a.blog-pager-older-link:hover, a.blog-pager-newer-link:hover {
text-decoration:none !important;
}
a.blog-pager-newer-link:before {
content: url(https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjCYRVd6AahPJM7NHN7YWjK5HGBvAOzoqvgXCuQTRou6k9VBwGjPHMtpDecVuxOmKU9jrxTcY9yaY57JtiOH0GWVYq0Sm-AvTcZmtevhRt0-XIyopiSv9dCdGFGdFaqd1tvsZm6NhdONh0/s32/flecha2.png);
float:left;
}
a.blog-pager-older-link:before {
content: url(https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjssA3ZhWF1Ug0Vg_IGqzK5h0a2ySZTJlKMZ1drDuhSna6yFzel_7XV3Ck8syZyHUIXfGDJfBDWX7eXA_4TuFMjv2kCfd2sZN2k9RMSwG4zAszIltj4hv4EvN71S-nxjlh5MEpll7dJqkk/s32/flecha1.png);
float:left;
}
#blog-pager {
width:500px;
background-color: transparent !important;
background-image: none !important;
border:0 !important;
text-align:left;
}
#blog-pager div {
color:#fff; /* Color de los textos "Entrada anterior" y "Entrada siguiente" */
font-weight:bold;
margin-bottom: -5px;
}
a#blog-pager div:hover {
text-decoration:none !important;
color:#fff; /* Color de los textos "Entrada anterior" y "Entrada siguiente" */
}
#blog-pager-note {
z-index:9;
}
#blog-pager-note h4 {
margin:0;
padding:0;
color:#4898B9; /* Color del título del recuadro */
font-size:16px; /* Tamaño del título del recuadro */
}
-->
</style>
</b:if>
Hay tres URLs en color azul, la primera es la imagen de fondo semitransparente del recuadro, las otras dos corresponden a los íconos de las flechas.
En color verde puedes ver dónde cambiar los colores de los textos.
El número en color rojo es la distancia en pixeles que activa el gadget, es decir, que como está ahora, el recuadro aparecerá cuando se haya bajado el scroll 150px. Puedes usar un valor más alto en caso de que tus entradas suelan ser largas y por lo tanto la "altura" del scroll sea mayor.

Cabe mencionar que este gadget usa jQuery, así que procura tener sólo una versión, y si usas Scriptaculous deberás aplicar un hack, de lo contrario podría no funcionar.

También puedes cambiar las palabras "Entrada anterior" y "Entrada siguiente" por alguna otra frase.

No hay comentarios:

Publicar un comentario