Pase de Diapositivas o Slideshow

Caimacan escrito el 17.08.PM a las 15:12 horas

Hola de nuevo, para aquellos que me habéis pedido por mensaje privado un pase de diapositivas o también llamado “Slideshow” que es como habitualmente lo encontraréis por la red, aquí os dejo uno fácil, sencillo y ajustable a la medida que queráis para vuestra web.


Empezamos:


Un Slideshow consta de 4 archivos:


1.- Una carpeta donde se guardarán las imágenes a mostrar y con el tamaño que queráis. La creamos y metemos las fotos dentro. La llamaremos imagenes. Todas las fotos tienen que tener el mismo tamaño. Yo utilizo un programa muy sencillo para ajustar tamaños “Pixresizer”, pero podéis hacerlo con cualquier otro programa, Photopaint, etc, etc.


2.- Un archivo en formato CSS (hoja de estilo). Este archivo es donde hay que indicar el tamaño de las fotos que hemos metido en la carpeta imágenes.


3.- Un archivo en formato JS (javascript). Este archivo marca los tiempos para cada foto, fundidos, etc. y que por supuesto podréis modificar dependiendo de vuestros gustos.


4.- Por último el código que hace que todo funcione. Este código los meteremos como siempre, creamos un cuadrado, botón derecho sobre él, propiedades web, marcador de lugar (Body) y pegamos el código dentro.


Ahora vamos con lo importante, ¿qué hacemos con el resto?, pues metemos la carpeta de las imagenes, el archivo CSS y el archivo JS en la raíz de nuestra web, es decir, junto a la carpeta index_htm_files y resto de archivos que forman nuestra web a medida que vamos exportando. Lo arrastramos ahí y listo. Nuestro Slideshow o pase de dispositivas ya está preparado.


Bien, os dejo los códigos de los 3 archivos para que todo funcione.

Este primer código lo pegaréis en el cuadrado que tenéis que crear.

 


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
<link rel="stylesheet" href='slideshow1.css' type="text/css" />
<script type="text/javascript" src="primerslide.js"></script>
<title>Slideshow Demo</title>
</head>
<body>
<div id="rotator">
<img src="imagenes/1.jpg">
<img src="imagenes/2.jpg">
<img src="imagenes/3.jpg">
<img src="imagenes/4.jpg">
<img src="imagenes/5.jpg">
   </div>
</body>
</html>  


El segundo código corresponde al archivo CSS (hoja de estilo). Lo copiáis en un archivo de texto mismo y lo guardáis como slideshow1.css. Copia desde el asterisco hasta la última llave.

 

*
{
margin: 0;
padding: 0;
}

#rotator
{

overflow: hidden;
margin: 0px auto 10px;
position: relative;
width: 450px;
height: 303px;

#rotator img
{
border: 0;
width: 450px;
height: 303px;
}

p
{
text-align: center;
}

 

Por útimo el tercer código y que corresponde al archivo JS (javascript). Lo copiáis en un archivo de texto también y lo guardáis como primerslide.js. Copia hasta la última llave.


window.addEventListener?window.addEventListener('load',so_init,false):window.attachEvent('onload',so_init);
var d=document, imgs = new Array(), zInterval = null, current=0, pause=false;
function so_init()
{
if(!d.getElementById || !d.createElement)return;
css = d.createElement('link');
css.setAttribute('href','slideshow1.css');
css.setAttribute('rel','stylesheet');
css.setAttribute('type','text/css');
d.getElementsByTagName('head')[0].appendChild(css);
imgs = d.getElementById('rotator').getElementsByTagName('img');
for(i=1;i imgs[0].style.display = 'block';
imgs[0].xOpacity = .99;
setTimeout(so_xfade,5000);
}

function so_xfade()
{
cOpacity = imgs[current].xOpacity;
nIndex = imgs[current+1]?current+1:0;
nOpacity = imgs[nIndex].xOpacity;
cOpacity-=.05;
nOpacity+=.05;
imgs[nIndex].style.display = 'block';
imgs[current].xOpacity = cOpacity;
imgs[nIndex].xOpacity = nOpacity;
setOpacity(imgs[current]);
setOpacity(imgs[nIndex]);
if(cOpacity<=0)
{
  imgs[current].style.display = 'none';
  current = nIndex;
  setTimeout(so_xfade,5000);
}
else
{
  imgs[current].style.display = 'none';
  setTimeout(so_xfade,80);
}
function setOpacity(obj)
{
  if(obj.xOpacity>.99)
  {
   obj.xOpacity = .99;
   return;
  }
  obj.style.opacity = obj.xOpacity;
  obj.style.MozOpacity = obj.xOpacity;
  obj.style.filter = 'alpha(opacity=' + (obj.xOpacity*100) + ')';
}
}


Eso es todo.

El tamaño que he puesto para las fotos y que verás en el código del archivo CSS es de 450 X 303, por supuesto puedes modificarlo a tu gusto y tienes que hacerlo en los dos sitios que aparece ese tamaño dentro de ese código.

Vuestros archivos deberían haber quedado así...

Espero que se haya entendido todo. Por último, deciros que este Slideshow no tiene botonera para poder parar la foto o darle hacia adelante o hacia atrás.  El resultado sería este…

http://www.greenparrotscantabria.es/quienes_somos.htm

También hice otro Slideshow en esa misma web algo diferente y que si que tiene botonera. Este contiene algo más de código que el que os he dejado.

http://www.greenparrotscantabria.es/instalaciones.htm

Un saludo.

Toño.

Comentarios

Carlos escrito el 18.08.AM a las 07:24 horas

Gracias Toño lo guardare, a mi  ahora no me hace falta pero nunca se sabe, como  hiciste el segundo pase de fotos también mediante código o con un programa. Gracias

Carlos escrito el 18.08.AM a las 08:07 horas

Hola no me funciona el código pongo las mismas fotos que usaste tu el código lo hago con bloc de notas y lo único me sale una imagen debajo de otra, creo que hago todo bien. Un saludo gracias

Caimacan escrito el 18.08.AM a las 11:18 horas

Es importante aclararar que las fotos no están, tenéis que meterlas vosotros en la carpeta imagenes que váis a crear y ponerles el nombre que corresponde. Fijaros también que la carpeta imagenes no lleva acento en la a. La carpeta imagenes debería tener esto:

1.jpg

2.jpg

3.jpg

4.jpg

5.jpg

El slideshow funciona perfectamente siempre y cuando las fotos tengan ese nombre.

El segundo slideshow efectivamente lo he hecho con un programa, ese pase de diapositivas es bastante más vistoso que el primero.

Un saludo.

Toño.

 

 

Carlos escrito el 18.08.PM a las 13:55 horas

Hola en web designer no me funciona, lo mismo no funciona en modo local y  hay que subirlo al servidor web para que funcione  o alomejor es por el tipo de documento yo uso el bloc de notas y en tus archivos el .js tiene como un dibujo de un pergamino y el css como una rueda dentada creo que hay esta el problema en el archivo tanto de estilos como el de JavaScript, la carpeta imágenes esta bien y uso las mismas la de los loros,como te digo me salen una debajo de la otra.

Caimacan escrito el 18.08.PM a las 17:48 horas

Claro, no se puede guardar el archivo como texto.

Se copia el código, se pega en un archivo de texto y después  lo guardas como he dicho en el comentario anterior.

slideshow1.css y el otro archivo se guarda como primerslide.js.

Saludos.

Toño.

Carlos escrito el 18.08.PM a las 19:06 horas

Vamos mejorando copio el código en un block de notas lo abro con dreamweaver lo guardo como primerslide.js y el otro slideshow1.css me genera dos archivos nuevos uno hoja de estilos en cascada el css y el otro un jscript pero el nombre esta sin el .js y el css.
Se me queda así la carpeta con las imágenes la pagina HTML un archivo llamado primerslide y otro slideshow1, estos archivos si los renombro con el .js y .css se repite y quedan primerslide.js.js y slideshow1.css.css así que no lo renombro y  lo dejo como esta y ahora a la hora de verlo si queda fija la primera imagen no hace la secuencia.
Solo queda que no funcione en local esa es mi pregunta, este pase de fotos funciona en local
Gracias

Caimacan escrito el 19.08.AM a las 01:06 horas

Hola Carlos, el pase de diapositivas funciona perfectamente en local, no hace falta que se suba al servidor.

Cada foto cambia a los 5 segundos, eso es lo que tengo puesto en el archivo JS.

setTimeout(so_xfade,5000);

Si estás haciendo todo lo que he puesto, tiene que funcionar, esto no tiene mucho misterio. Cuando guardas los archivos de texto veo que lo haces bien, por tanto, ese no es el problema que estás teniendo.

Saludos.

Toño.

 

Carlos escrito el 19.08.AM a las 09:17 horas

Hola Toño  ya me funciona, valla comedura de cabeza jejeje….. revise el código y  en esta línea del código del primerslide.js

 

for(i=1;i imgs[0].style

 

Añadí esto

 

for(i=1;i<imgs.length;i++) imgs[i].xOpacity = 0

 

Y a mi me funciona haber si la gente prueba los códigos para ver si es cosa mia.

 

Al final queda asi :

 

window.addEventListener?window.addEventListener('load',so_init,false):window.attachEvent('onload',so_init);

var d=document, imgs = new Array(), zInterval = null, current=0, pause=false;

function so_init()
{
if(!d.getElementById || !d.createElement)return;

css = d.createElement('link');
css.setAttribute('href','slideshow1.css');
css.setAttribute('rel','stylesheet');
css.setAttribute('type','text/css');
d.getElementsByTagName('head')[0].appendChild(css);

imgs = d.getElementById('rotator').getElementsByTagName('img');
for(i=1;i<imgs.length;i++) imgs[i].xOpacity = 0;
imgs[0].style.display = 'block';
imgs[0].xOpacity = .99;

setTimeout(so_xfade,5000);
}

function so_xfade()
{
cOpacity = imgs[current].xOpacity;
nIndex = imgs[current+1]?current+1:0;
nOpacity = imgs[nIndex].xOpacity;

cOpacity-=.05;
nOpacity+=.05;

imgs[nIndex].style.display = 'block';
imgs[current].xOpacity = cOpacity;
imgs[nIndex].xOpacity = nOpacity;

setOpacity(imgs[current]);
setOpacity(imgs[nIndex]);

if(cOpacity<=0)
{
  imgs[current].style.display = 'none';
  current = nIndex;
  setTimeout(so_xfade,5000);
}
else
{
  imgs[current].style.display = 'none';
  setTimeout(so_xfade,80);
}

function setOpacity(obj)
{
  if(obj.xOpacity>.99)
  {
   obj.xOpacity = .99;
   return;
  }

  obj.style.opacity = obj.xOpacity;
  obj.style.MozOpacity = obj.xOpacity;
  obj.style.filter = 'alpha(opacity=' + (obj.xOpacity*100) + ')';
}
}

 

Gracias y un saludo.


 

Caimacan escrito el 19.08.PM a las 12:42 horas

Me alegro que te haya funcionado, aunque es raro que hayas tenido que modificar esa línea de código, en mi ordenador funciona perfectamente tal y como os lo he puesto.

Lo importante es que funciona y que podéis poner las fotos del tamaño que queráis para ajustarlo a vuestra web.

Un saludo.

Toño.

cadrianweb escrito el 19.08.PM a las 20:22 horas

Gracias Caimacan por tus aportaciones. lo acabo de insertar en un sitio que hice y quedo fantastico. El tema sería ver si se puediese dar con uno en el que varien los efectos de transcion para que sea mas vistoso. Por cierto, para cuando va a estar la version de Web Designer premuin 8 en español? ... que larga se hace la espera.

 

Saludos,

 

Carlos Adrián

http://www.jemasa-servicios.com

Caimacan escrito el 19.08.PM a las 21:34 horas

Gracias por tu comentario Cadrianweb.

Hay muchos Slideshow que se pueden utilizar y con efectos bastante curiosos. El de la segunda página que os he puesto en el primer comentario es uno de ellos. Hay programas especificos para ello, por ejemplo, Wow Slider.

Respecto a la pregunta del lanzamiento del Web Designer MX Premium en Español, por el momento no se sabe nada, estaremos atentos a su llegada que deseamos sea lo antes posible.

Un saludo.

Toño.

xanarq escrito el 13.09.PM a las 12:23 horas

Hola de nuevo, para aquellos que me habéis pedido por mensaje privado un pase de diapositivas o también llamado “Slideshow” que es como habitualmente lo encontraréis por la red, aquí os dejo uno fácil, sencillo y ajustable a la medida que queráis para vuestra web.


Empezamos:


Un Slideshow consta de 4 archivos:


1.- Una carpeta donde se guardarán las imágenes a mostrar y con el tamaño que queráis. La creamos y metemos las fotos dentro. La llamaremos imagenes. Todas las fotos tienen que tener el mismo tamaño. Yo utilizo un programa muy sencillo para ajustar tamaños “Pixresizer”, pero podéis hacerlo con cualquier otro programa, Photopaint, etc, etc.


2.- Un archivo en formato CSS (hoja de estilo). Este archivo es donde hay que indicar el tamaño de las fotos que hemos metido en la carpeta imágenes.


3.- Un archivo en formato JS (javascript). Este archivo marca los tiempos para cada foto, fundidos, etc. y que por supuesto podréis modificar dependiendo de vuestros gustos.


4.- Por último el código que hace que todo funcione. Este código los meteremos como siempre, creamos un cuadrado, botón derecho sobre él, propiedades web, marcador de lugar (Body) y pegamos el código dentro.


Ahora vamos con lo importante, ¿qué hacemos con el resto?, pues metemos la carpeta de las imagenes, el archivo CSS y el archivo JS en la raíz de nuestra web, es decir, junto a la carpeta index_htm_files y resto de archivos que forman nuestra web a medida que vamos exportando. Lo arrastramos ahí y listo. Nuestro Slideshow o pase de dispositivas ya está preparado.


Bien, os dejo los códigos de los 3 archivos para que todo funcione.

Este primer código lo pegaréis en el cuadrado que tenéis que crear.

 


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
<link rel="stylesheet" href='slideshow1.css' type="text/css" />
<script type="text/javascript" src="primerslide.js"></script>
<title>Slideshow Demo</title>
</head>
<body>
<div id="rotator">
<img src="imagenes/1.jpg">
<img src="imagenes/2.jpg">
<img src="imagenes/3.jpg">
<img src="imagenes/4.jpg">
<img src="imagenes/5.jpg">
   </div>
</body>
</html>  


El segundo código corresponde al archivo CSS (hoja de estilo). Lo copiáis en un archivo de texto mismo y lo guardáis como slideshow1.css. Copia desde el asterisco hasta la última llave.

 

*
{
margin: 0;
padding: 0;
}

#rotator
{

overflow: hidden;
margin: 0px auto 10px;
position: relative;
width: 450px;
height: 303px;

#rotator img
{
border: 0;
width: 450px;
height: 303px;
}

p
{
text-align: center;
}

 

Por útimo el tercer código y que corresponde al archivo JS (javascript). Lo copiáis en un archivo de texto también y lo guardáis como primerslide.js. Copia hasta la última llave.


window.addEventListener?window.addEventListener('load',so_init,false):window.attachEvent('onload',so_init);
var d=document, imgs = new Array(), zInterval = null, current=0, pause=false;
function so_init()
{
if(!d.getElementById || !d.createElement)return;
css = d.createElement('link');
css.setAttribute('href','slideshow1.css');
css.setAttribute('rel','stylesheet');
css.setAttribute('type','text/css');
d.getElementsByTagName('head')[0].appendChild(css);
imgs = d.getElementById('rotator').getElementsByTagName('img');
for(i=1;i imgs[0].style.display = 'block';
imgs[0].xOpacity = .99;
setTimeout(so_xfade,5000);
}

function so_xfade()
{
cOpacity = imgs[current].xOpacity;
nIndex = imgs[current+1]?current+1:0;
nOpacity = imgs[nIndex].xOpacity;
cOpacity-=.05;
nOpacity+=.05;
imgs[nIndex].style.display = 'block';
imgs[current].xOpacity = cOpacity;
imgs[nIndex].xOpacity = nOpacity;
setOpacity(imgs[current]);
setOpacity(imgs[nIndex]);
if(cOpacity<=0)
{
  imgs[current].style.display = 'none';
  current = nIndex;
  setTimeout(so_xfade,5000);
}
else
{
  imgs[current].style.display = 'none';
  setTimeout(so_xfade,80);
}
function setOpacity(obj)
{
  if(obj.xOpacity>.99)
  {
   obj.xOpacity = .99;
   return;
  }
  obj.style.opacity = obj.xOpacity;
  obj.style.MozOpacity = obj.xOpacity;
  obj.style.filter = 'alpha(opacity=' + (obj.xOpacity*100) + ')';
}
}


Eso es todo.

El tamaño que he puesto para las fotos y que verás en el código del archivo CSS es de 450 X 303, por supuesto puedes modificarlo a tu gusto y tienes que hacerlo en los dos sitios que aparece ese tamaño dentro de ese código.

Vuestros archivos deberían haber quedado así...

Espero que se haya entendido todo. Por último, deciros que este Slideshow no tiene botonera para poder parar la foto o darle hacia adelante o hacia atrás.  El resultado sería este…

http://www.greenparrotscantabria.es/quienes_somos.htm

También hice otro Slideshow en esa misma web algo diferente y que si que tiene botonera. Este contiene algo más de código que el que os he dejado.

http://www.greenparrotscantabria.es/instalaciones.htm

Un saludo.

Toño.

 

 

Hola Toño, me interesa hacer un slideshow con botonera y muy "minimalista". Tengo la version Web Designer 10... puede que incluso ya haya algo creado en el propio programa, o algun widget que pueda descargar/comprar...

Te muestro un ejemplo de lo que me gustaria, a ver si crees que puedo hacerlo y si me puedes echar una mano. --->   http://www.thomasserck.be/DE-WIJNAERT-2010

 

Muchas gracias!

 

Xavier