vieja pregunta, pero pensé en tirar de una respuesta . Lo uso para la imagen de encabezado grande en una página de inicio. Funciona bien al manipular el índice z para las imágenes actuales y siguientes, muestra la siguiente imagen justo debajo de la actual, y luego desvanece la actual.
CSS:
#jumbo-image-wrapper
{
width: 100%;
height: 650px;
position: relative;
}
.jumbo-image
{
width: 100%;
height: 100%;
position: absolute;
top: 0px;
left: 0px;
}
HTML:
<div id="jumbo-image-wrapper">
<div class="jumbo-image" style="background-image: url('img/your-image.jpg');">
</div>
<div class="jumbo-image" style="background-image: url('img/your-image-2'); display: none;">
</div>
</div>
Javascript (jQuery):
function jumboScroll()
{
var num_images = $("#jumbo-image-wrapper").children(".jumbo-image").length;
var next_index = jumbo_index+1;
if (next_index == num_images)
{
next_index = 0;
}
$("#jumbo-image-wrapper").children(".jumbo-image").eq(jumbo_index).css("z-index", "10");
$("#jumbo-image-wrapper").children(".jumbo-image").eq(next_index).css("z-index", "9");
$("#jumbo-image-wrapper").children(".jumbo-image").eq(next_index).show();
$("#jumbo-image-wrapper").children(".jumbo-image").eq(jumbo_index).fadeOut("slow");
jumbo_index = next_index;
setTimeout(function(){
jumboScroll();
}, 7000);
}
Se trabajará sin mate ¿Cuántas "diapositivas" con la clase .jumbo-image se encuentran en la div # jumbo-image-wrapper?
El problema es que la nueva imagen ya no está cargada, por lo tanto, hay un abrir y cerrar de ojos de la nueva imagen. (Puede verlo solo si tiene caché vacío, por supuesto) –
Dije el "caso más simple". Otra forma sería precargar la segunda imagen con javascript o con otra etiqueta 'img' oculta. Fundir el original, luego desvanecerse en el nuevo. –
O bien, puede usar el evento 'load' para determinar la carga. –