0

Ampliar imágenes con expando.js



Si pasas el puntero sobre la siguiente imagen verás que se puede ampliar a su tamaño original.


El mismo efecto lo podemos añadir a un grupo de imágenes.


Esto es posible gracias a un script proporcionado por Dynamic Drive, Los pasos son los siguientes, descargamos el script de Dynamic Drive expando.js y lo alojamos en el servidor que solemos usar. Luego nos dirigimos a nuestra plantilla y en Edición de HTML buscamos </head> justo antes lo añadimos de la siguiente forma:

<script src='aquí-url-del-script' type='text/javascript'/>

» Donde dice aquí-url-del-script los sustituimos por la url del script que alojamos anteriormente.

Hay otra opción y es añadir el script directamente a la plantilla, de esa forma evitaremos que el archivo deje de funcionar por problemas de alojamiento como puede ser superar la banda ancha o caídas del servidor. En este caso lo añadiremos también antes de </head> de esta forma:

<script type='text/javascript'>
//<![CDATA[
// Expando
/* Expando Image Script ©2008 John Davenport Scheuer
as first seen in http://www.dynamicdrive.com/forums/
username: jscheuer1 - This Notice Must Remain for Legal Use
*/

if (document.images){
(function(){
var cos, a = /Apple/.test(navigator.vendor), times = a? 20 : 40, speed = a? 40 : 20;
var expConIm = function(im){
im = im || window.event;
if (!expConIm.r.test (im.className))
im = im.target || im.srcElement || null;
if (!im || !expConIm.r.test (im.className))
return;
var e = expConIm,
widthHeight = function(dim){
return dim[0] * cos + dim[1] + 'px';
},
resize = function(){
cos = (1 - Math.cos((e.ims[i].jump / times) * Math.PI)) / 2;
im.style.width = widthHeight (e.ims[i].w);
im.style.height = widthHeight (e.ims[i].h);
if (e.ims[i].d && times > e.ims[i].jump){
++e.ims[i].jump;
e.ims[i].timer = setTimeout(resize, speed);
} else if (!e.ims[i].d && e.ims[i].jump > 0){
--e.ims[i].jump;
e.ims[i].timer = setTimeout(resize, speed);
}
}, d = document.images, i = d.length - 1;
for (i; i > -1; --i)
if(d[i] == im) break;
i = i + im.src;
if (!e.ims[i]){
im.title = '';
e.ims[i] = {im : new Image(), jump : 0};
e.ims[i].im.onload = function(){
e.ims[i].w = [e.ims[i].im.width - im.width, im.width];
e.ims[i].h = [e.ims[i].im.height - im.height, im.height];
e (im);
};
e.ims[i].im.src = im.src;
return;
}
if (e.ims[i].timer) clearTimeout(e.ims[i].timer);
e.ims[i].d = !e.ims[i].d;
resize ();
};

expConIm.ims = {};

expConIm.r = new RegExp('\\bexpando\\b');

if (document.addEventListener){
document.addEventListener('mouseover', expConIm, false);
document.addEventListener('mouseout', expConIm, false);
}
else if (document.attachEvent){
document.attachEvent('onmouseover', expConIm);
document.attachEvent('onmouseout', expConIm);
}
})();
}
//]]>
</script>

Una vez lo tenemos añadido nos situamos justo antes de ]]></b:skin> y añadimos unos estilos para el contorno de las imágenes.

img.expando{
border: none;
vertical-align: top;
}

A esos estilos le podemos añadir diferente borde del que presentan nuestras imágenes, podéis ver algunos aquí. Si preferimos el borde igual al de las imágenes de nuestras entradas buscamos donde dice:

.post img {
aquí estarán los estilos
que podemos copiar y pegar
}

Para el ejemplo añadí:

img.expando{
background:#EFEFEF;
padding:8px;
border:2px outset #F6FAF4;
vertical-align: top;
}

Cuando tenemos los estilos definidos ya está todo listo para añadir nuestra imagen, la añadimos de la siguiente forma:
<img class="expando" src="url-de-la-imagen" width="100" border="0" height="100" />

» Con height (altura) y width (anchura) escogemos el tamaño que mostrará la imagen en miniatura.

Si deseamos añadir un grupo de imágenes:
<p><img class="expando nombre-imagen" border="0" src="url-imagen-1" width="100" height="100"><img class="expando nombre-imagen" border="0" src="url-imagen-2" width="100" height="100"><img class="expando nombre-imagen" border="0" src="url-imagen-3" width="100" height="100"></p>

» Donde url-imagen-1-2-3 lo sustituimos por la url de nuestra imagen.

» En nombre-imagen podemos añadir el nombre o título de nuestra imagen, de esa forma si tenemos que hacer una modificación sabremos sobre qué imagen la estamos haciendo.

Para el efecto del grupo de imágenes debemos tener especial cuidado que el tamaño real sea prudencial de no ser así tendríamos el siguiente problema.


¿Una solución? calcular que la suma de la imagen ampliada y las miniaturas no supere el width (ancho) de main-wrapper que es el espacio disponible para las entradas.

Eso es muy sencillo si consideramos que Blogger nos proporciona tres tamaños para las imágenes 200-320-400 de ser un tamaño distinto tendríamos que modificarlo con algún editor de imágenes.



0

Mensaje de bienvenida sobre las entradas

He recibido varias consultas últimamente en las que me solicitaban la forma de mostrar un mensaje de bienvenida en la página principal.

Vamos a crear sobre las entradas una nueva sección en la que colocaremos un gadget HTML donde incluiremos nuestro mensaje de bienvenida, que solo será visible en la página principal del blog y al que daremos un aspecto diferente al resto del blog.

[1] En nuestro panel vamos a "Edición HTML" y localizamos este código sin expandir las plantillas de artilugios":

<b:section class='main' id='main' showaddelement='no'>
<b:widget id='Blog1' locked='true' title='Entradas del blog' type='Blog'/>
</b:section>

[2] Justo antes de ese código, colocamos el código para la nueva sección:
<b:if cond='data:blog.url == data:blog.homepageUrl'>
<b:section class='main' id='main-dos' showaddelement='yes'>
<b:widget id='HTML50' locked='false' title='' type='HTML'/>
</b:section>
</b:if>

[3] Guardamos los cambios.
Si ahora vamos a la parte de "Diseño" de nuestro panel, veremos la nueva sección sobre las entradas con el gadget HTML que hemos añadido:

Nueva Seccion

[4] Pinchamos entonces en "editar" del nuevo gadget y colocamos algo como esto en su interior:
<div class="mensaje">

<h2>¡Bienvenido!</h2>

<img src="http://img155.imageshack.us/img155/3627/34283694.jpg"/>
<p>Bienvenido a mi blog.</p>
<p>Espero que lo que veas aquí sea de tu agrado y pases un rato agradable.</p>

<p>¡Estás en tu casa!</p>

<p>Si quieres puedes suscribirte a mi <a href="http://feeds2.feedburner.com/blogspot/hnBy">feed</a> </p>

<p>Y si necesitas contactar conmigo, puedes enviarme un <a href="mailto:lejaniaimposible@hotmail.com">email</a></p>

</div>

[5] Guardamos cambios y vamos a comprobar como se ve nuestro mensaje de bienvenida:

Vista previa

[6] Vamos a usar algo de CSS para personalizar el diseño del mensaje.
Como podéis ver, el contenido del mensaje de bienvenida está incluido dentro de un <div> al que hemos añadido una clase (<div class="mensaje">), usando esa clase colocaremos en el CSS de nuestra plantilla (siempre antes de ]]></b:skin>) algo como esto:

.mensaje{background:#B7D3D9;padding: 10px;font-size: 14px;}
.mensaje h2{font-size: 22px; margin: 0 auto; color: #fff; font-weight: bold;text-align: center; }
.mensaje a{font-weight: bold; color:#fff;text-decoration:underline;}

Con esto le estamos diciendo al contenido de nuestro "mensaje" que muestre un fondo de color, una separación del contenido a los bordes y que el tamaño del texto sea de 14px:

.mensaje{background:#B7D3D9;padding: 10px;font-size: 14px;}

En el div hemos incluido el título del mensaje entre <h2> y </h2> para poder controlar su aspecto.
Le damos un tamaño de texto de 22px, establecemos un margen, un color para el texto y le indicamos que se vea centrado y en negrita:

.mensaje h2{font-size: 22px; margin: 0 auto; color: #fff; font-weight: bold;text-align: center; }

Añadimos también una línea de código que controle el aspecto de los enlaces a la vista.
Serán de color blanco y estarán en negrita, mostrándose además subrayados:

.mensaje a{font-weight: bold; color:#fff;text-decoration:underline;}

[7] Guardamos los cambios en la plantilla y comprobamos el aspecto que va cobrando nuestro mensaje.

Mensaje configurado

[8] Podríamos añadir una imagen dentro del div para que su diseño quedase aún mas llamativo, incluso podríamos usar esa imagen como enlace.

Editamos de nuevo el gadget y colocamos la url de la imagen después de su título:
<div class="mensaje">

<h2>¡Bienvenido!</h2>
<img src="http://img155.imageshack.us/img155/3627/34283694.jpg"/>
<p>Bienvenido a mi blog.</p>
<p>Espero que lo que veas aquí sea de tu agrado y pases un rato agradable.</p>

<p>¡Estás en tu casa!</p>

<p>Si quieres puedes suscribirte a mi <a href="http://feeds2.feedburner.com/blogspot/hnBy">feed</a> </p>

<p>Y si necesitas contactar conmigo, puedes enviarme un <a href="mailto:lejaniaimposible@hotmail.com">email</a></p>

</div>

[9] Ya solo nos quedaría añadir, justo a continuación del código CSS que antes colocamos en la plantilla, una línea más de código para controlar la posición de la imagen y añadirle un borde con una ligera separación de este a la imagen:

.mensaje img{float: right;border: 1px solid #fff;padding: 2px;}

Resultado final

0

Resumen en todos los post

Blogger´SPhera nos proporciona una idea de VN Weblog Guide resumir los post automáticamente cosa que antes nos veíamos obligados a hacer manualmente en post anteriores cuando añadíamos algún sistema de "leer más", una vez realizamos los cambios no tendremos que preocuparnos de nada. Eso si.. el resultado lo veremos en todos los post.
Estaría bien si antes de seguir descargamos una copia de la plantilla, lo que haremos es muy sencillo pero así tendremos más tranquilidad.

Nos situamos en plantilla Edición de HTML y marcamos para expandir la plantilla de artilugios. Buscamos </head> y justo antes añadimos lo siguiente:


<script type='text/javascript'>
var thumbnail_mode = &quot;float&quot; ;
summary_noimg = 230;
summary_img = 140;
img_thumb_height = 100;
img_thumb_width = 100;
//<![CDATA[
function removeHtmlTag(strx,chop){
if(strx.indexOf("<")!=-1)
{
var s = strx.split("<");
for(var i=0;i<s.length;i++){
if(s[i].indexOf(">")!=-1){
s[i] = s[i].substring(s[i].indexOf(">")+1,s[i].length);
}
}
strx = s.join("");
}
chop = (chop < strx.length-1) ? chop : strx.length-2;
while(strx.charAt(chop-1)!=' ' && strx.indexOf(' ',chop)!=-1) chop++;
strx = strx.substring(0,chop-1);
return strx+'...';
}
function createSummaryAndThumb(pID){
var div = document.getElementById(pID);
var imgtag = "";
var img = div.getElementsByTagName("img");
var summ = summary_noimg;
if(img.length>=1) {
if(thumbnail_mode == "float") {
imgtag = '<span style="float:left; padding:0px 10px 5px 0px;"><img src="'+img[0].src+'" width="'+img_thumb_width+'px" height="'+img_thumb_height+'px"/></span>';
summ = summary_img;
} else {
imgtag = '<div style="padding:5px" align="center"><img style="max-width:'+img_thumb_width+'px; max-height:'+img_thumb_height+'px;" src="'+img[0].src+'" /></div>';
summ = summary_img;
}
}
var summary = imgtag + '<div>' + removeHtmlTag(div.innerHTML,summ) + '</div>';
div.innerHTML = summary;
}
//]]>
</script>

Lo que sigue a continuación nos permite modificar la forma de mostrar los post resumidos y lo podemos hacer una vez terminamos todos los cambios, de esa forma podemos ver en vista previa el resultado de lo que vamos haciendo. Sería algo así:

» Donde dice var thumbnail_mode = "float" ; podemos ubicar la imagen en miniatura.
Con float la imagen se ubica a la izquierda. Si lo sustituimos por no-float la imagen se sitúa en la parte superior del pots y a continuación el resto del post.

"Cualquier cambio que hagamos sólo afectará la imagen que mostramos en los post resumidos, es decir la miniatura, una vez visualizamos el post completo la imagen se muestra en el tamaño y ubicación escogida por nosotros"

» En summary_noimg = 230 ; escogemos el número de caracteres en los post resumidos que NO contienen imágenes.

» En summary_img = 140; será el número de caracteres cuyos post contienen imágenes.

» Adjudicamos altura a la imagen en img_thumb_height = 100;

» La anchura la modificamos en img_thumb_width = 100;

Buscamos ahora lo siguiente:
<div class='post-body entry-content'>
<data:post.body/>
<div style='clear: both;'/> <!-- clear for photos floats -->
</div>

Y lo sustituimos por:
<div class='post-body entry-content'>
<b:if cond='data:blog.pageType != &quot;item&quot;'>
<div expr:id='&quot;summary&quot; + data:post.id'><data:post.body/></div>
<script type='text/javascript'>createSummaryAndThumb(&quot;summary<data:post.id/>&quot;);</script>
<span id='showlink'><a expr:href='data:post.url'> Texto para expandir el post </a></span>
</b:if>
<b:if cond='data:blog.pageType == &quot;item&quot;'><data:post.body/></b:if>
<div style='clear: both;'/> <!-- clear for photos floats -->
</div>

»Sustituimos Texto para expandir el post por el texto que hará de vínculo para mostrar el post en su totalidad.
»También podemos añadir una imagen en lugar del texto si añadimos:
<img src="url-imagen" />

» Si deseamos añadir unos estilos a ese texto podemos hacerlo con la etiqueta span.
<span style='color:#000;font-size:14px;'> Texto para expandir el post</span>
Ahí mismo podemos modificar el color de letra, tamaño y fondo.

El resultado de estas explicaciones podéis verlo aquí.

0

Ultimas entradas con miniatura de imagen

Un gadget que me he encontrado en The MLxperience

Copiando y pegando en un gadget HTML de la sidebar el código que allí nos proporcionan, mostraremos las cinco últimas entradas de nuestro blog acompañadas de una miniatura de imagen cada una de ellas.

<script language="JavaScript">
imgr = new Array();

imgr[0] = "http://librarysupporter.googlepages.com/thumb.jpg";
imgr[1] = "http://librarysupporter.googlepages.com/thumb1.jpg";
imgr[2] = "http://librarysupporter.googlepages.com/thumb2.jpg";
imgr[3] = "http://librarysupporter.googlepages.com/thumb3.jpg";
imgr[4] = "http://librarysupporter.googlepages.com/thumb4.jpg";

showRandomImg = true;

tablewidth = 220;
cellspacing = 8;
borderColor = "#ffffff";
bgTD = "#ffffff";

imgwidth = 50;
imgheight = 50;

fntsize = 12;
acolor = "#666";
aBold = true;
icon = " ";

text = "comments";

showPostDate = false;

summaryPost = 50;
summaryFontsize = 11;
summaryColor = "#666";
icon2 = " ";

numposts = 5;

home_page = "http://TU_BLOG.blogspot.com/";

</script>
<script src="http://wrath.xzibition.com/~jellybeans/recentposts_thumb.js" type="text/javascript"></script>

Modificaciones:

En esta línea del código tendremos que colocar la url de nuestro blog:

home_page = "http://TU_BLOG.blogspot.com/";

Si bien en The XMLxperience nos proporcionan el código con el script incluido, nos recomiendan (y yo también lo hago) descargar el script y usarlo en el código desde
nuestro propio alojamiento.

Podéis descargarlo desde mi alojamiento.
Una vez alojado sustituimos en el código la url "antigua" por la nueva.

En el gadget se mostrará la miniatura de alguna de las imágenes que hayamos incluido en las entradas. Si hemos publicado alguna entrada sin usar imágenes y para evitar que el gadget pierda su estética, el script mostrará una imagen de forma aleatoria de las que hayamos incluido en el código.

Es en esta parte del código donde colocaremos las url de las distintas imágenes que se mostrarán cuando la entrada solo contenga texto:

imgr[0] = "http://librarysupporter.googlepages.com/thumb.jpg";
imgr[1] = "http://librarysupporter.googlepages.com/thumb1.jpg";
imgr[2] = "http://librarysupporter.googlepages.com/thumb2.jpg";
imgr[3] = "http://librarysupporter.googlepages.com/thumb3.jpg";
imgr[4] = "http://librarysupporter.googlepages.com/thumb4.jpg";


Como veis son cuatro imágenes distintas que podemos cambiar por las nuestras sustituyendo cada url por la de las nuevas imágenes.


ultimas entradasModificar el aspecto del gadget

tablewidth = 220; Ancho del gadget.
borderColor = "#ffffff"; Color del borde.
bgTD = "#ffffff"; Color de fondo del gadget.
imgwidth = 50; Ancho de la miniatura de imagen.
imgheight = 50; Alto de la miniatura de imagen.
fntsize = 12; Tamaño del texto de los títulos.
acolor = "#666"; Color del título de entrada.
showPostDate = false; Fecha de entradas. No mostrar (false), Mostrar (true).
summaryPost = 50; Número de caracteres del resumen que se muestra de la entrada.
summaryFontsize = 11; Tamaño de texto del resumen de entrada.
summaryColor = "#666"; Color de texto del resumen de entrada.
numposts = 5; Número de entradas a mostrar en el gadget.

Además de todos estos cambios, también podemos usar el script modificado para que muestre nuestras últimas entradas alineadas en horizontal tal como podéis ver en The MLxperience debajo de su menú.

Esta forma de mostrar las últimas entradas es adecuada por ejemplo, para la sección del crosscol o el pie (footer) del blog.

Ultimas entradas horizontal

Para lograr esto, seguimos los pasos anteriores pero colocando en el código la url del script modificado, después de descargarlo a nuestro PC y subido a un alojamiento adecuado.

0

Estilos diferentes para varios autores

Hace unos días me preguntaban la forma de escribir varios autores en un blog y que el estilo de las entradas fueran distinto para cada uno de ellos.
Podemos conseguir de forma muy sencilla diferenciar las entradas añadiendo unas líneas en la CSS. En este caso yo las diferencié con distinto color de fondo pero podemos variar el borde, tipo de letra, color, añadir imagen de fondo, redondear esquinas...
Nos situamos justo antes de ]]></b:skin> y añadimos lo siguiente:

.María {
background-color:#D6C0D1;
padding: 0px 25px 25px 20px;
}
.Jesús {
background-color:#CAE8AD;
padding: 0px 25px 25px 20px;
}
.Olga {
background-color: #A0CBFF;
padding: 0px 25px 25px 20px;
}

Guardamos los cambios y nos dirigimos a  Plantilla de entrada que la encontraremos en Configuración|Formato.
Allí buscamos donde dice "Plantilla de entrada"  en el espacio disponible añadimos lo siguiente:
<div class="María">
Aquí escribe María...
</div>

<div class="Jesús">
Aquí es Jesús...
</div>

<div class="Olga">
Y aquí Olga...
</div>

Guardamos los cambios otra vez y nos disponemos a escribir nuestra entrada, en el editor veremos algo así:


El resto es muy sencillo cada autor escribe en el espacio que tiene destinado para ello, el resto de código que pertenece a los otros autores lo elimina y listo.


¡Suerte!!

0

Recopilación de iconos » Redes Sociales

0

Recuperar los enlaces de navegación

Los "enlaces de navegación" pueden verse al final de las páginas de nuestro blog y sirven, como su nombre indica, para "navegar" por las páginas anteriores o posteriores del blog.

Enlaces de navegacion

Recibo a menudo consultas sobre como recuperarlos en plantillas que han sido diseñadas para no mostrar esos enlaces.
Aunque yo los considero imprescindibles para un blog, a menudo vemos en plantillas que se ofrecen para descarga, que quien ha diseñado o adaptado alguna de esas plantillas ha decidido ocultar esos enlaces.
En general, lo que suelen hacer en estos diseños es simplemente ocultar los enlaces mediante CSS, con lo que en nuestra plantilla tendremos algo así:

#blog-pager-older-link {
float: right;
display: none;
}
#blog-pager-newer-link {
float: left;
display: none;
}
#blog-pager {
text-align: center;
display: none;
}

Si estas líneas se encuentran en nuestra plantilla, lo único que tendríamos que hacer para recuperar nuestros enlaces de navegación sería borrar de cada una de ellas el display: none;:
#blog-pager-older-link {
float: right;
}

#blog-pager-newer-link {
float: left;
}
#blog-pager {
text-align: center;
}