Foros del Web » Programando para Internet » Javascript »

Slideshow con fade

Estas en el tema de Slideshow con fade en el foro de Javascript en Foros del Web. Saludos He visto que existe en los ejemplos, un slideshow que hace una rotación de imagenes El tema, es que me gustaría hacer, que al ...
  #1 (permalink)  
Antiguo 05/07/2011, 15:32
 
Fecha de Ingreso: julio-2010
Mensajes: 116
Antigüedad: 13 años, 9 meses
Puntos: 0
Slideshow con fade

Saludos

He visto que existe en los ejemplos, un slideshow que hace una rotación de imagenes

El tema, es que me gustaría hacer, que al aparecer la nueva imagen, esté como background la imagen anterior, y la nueva se vaya haciendo visible. Un efecto de fade in

He encontrado el siguiente codigo, pero lo que hace, es que la imagen actual se desvanece, y de repente entra la nueva al 100%

Código:
<script type="text/javascript">
// Browser Slide-Show script. With image cross fade effect for those browsers
// that support it.
// Script copyright (C) 2004-2011 www.cryer.co.uk.
// Script is free to use provided this copyright header is included.
var FadeDurationMS=1000;
function SetOpacity(object,opacityPct)
{
  // IE.
  object.style.filter = 'alpha(opacity=' + opacityPct + ')';
  // Old mozilla and firefox
  object.style.MozOpacity = opacityPct/100;
  // Everything else.
  object.style.opacity = opacityPct/100;
}
function ChangeOpacity(id,msDuration,msStart,fromO,toO)
{
  var element=document.getElementById(id);
  var msNow = (new Date()).getTime();
  var opacity = fromO + (toO - fromO) * (msNow - msStart) / msDuration;
  if (opacity>=100)
  {
    SetOpacity(element,100);
    element.timer = undefined;
  }
  else if (opacity<=0)
  {
    SetOpacity(element,0);
    element.timer = undefined;
  }
  else 
  {
    SetOpacity(element,opacity);
    element.timer = window.setTimeout("ChangeOpacity('" + id + "'," + msDuration + "," + msStart + "," + fromO + "," + toO + ")",10);
  }
}
function FadeInImage(foregroundID,newImage,backgroundID)
{
  var foreground=document.getElementById(foregroundID);
  if (foreground.timer) window.clearTimeout(foreground.timer);
  if (backgroundID)
  {
    var background=document.getElementById(backgroundID);
    if (background)
    {
      if (background.src)
      {
        foreground.src = background.src; 
        SetOpacity(foreground,100);
      }
      background.src = newImage;
      background.style.backgroundImage = 'url(' + newImage + ')';
      background.style.backgroundRepeat = 'no-repeat';
      var startMS = (new Date()).getTime();
      foreground.timer = window.setTimeout("ChangeOpacity('" + foregroundID + "'," + FadeDurationMS + "," + startMS + ",100,0)",10);
    }
  } else {
    foreground.src = newImage;
  }
}
var slideCache = new Array();
function RunSlideShow(pictureID,backgroundID,imageFiles,displaySecs)
{
  var imageSeparator = imageFiles.indexOf(";");
  var nextImage = imageFiles.substring(0,imageSeparator);
  if (slideCache[nextImage] && slideCache[nextImage].loaded)
  {
    FadeInImage(pictureID,nextImage,backgroundID);
    var futureImages = imageFiles.substring(imageSeparator+1,imageFiles.length)
      + ';' + nextImage;
    setTimeout("RunSlideShow('"+pictureID+"','"+backgroundID+"','"+futureImages+"',"+displaySecs+")",
      displaySecs*1000);
    // Identify the next image to cache.
    imageSeparator = futureImages.indexOf(";");
    nextImage = futureImages.substring(0,imageSeparator);
  } else {
    setTimeout("RunSlideShow('"+pictureID+"','"+backgroundID+"','"+imageFiles+"',"+displaySecs+")",
      250);
  }
  // Cache the next image to improve performance.
  if (slideCache[nextImage] == null)
  {
    slideCache[nextImage] = new Image;
    slideCache[nextImage].loaded = false;
    slideCache[nextImage].onload = function(){this.loaded=true};
    slideCache[nextImage].src = nextImage;
  }
}
</script>
crea imagen basica

Código:
<img border="1" src="emily01.jpg" width="200" height="200" id="EmilyPicture">
crea background

Código:
<div id="EmilyPictureBackground">
  <img alt="slide show" src="emily01.jpg" width="200" height="200" id="EmilyPicture">
</div>
con esto llama al script

Código:
<script type="text/javascript">
RunSlideShow("EmilyPicture","EmilyPictureBackground",
    "emily01.jpg;emily02.jpg;emily03.jpg;emily04.jpg",5);
</script>
Es posible hacer lo que quiero? Gracias

Etiquetas: fade, slideshow
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 00:14.