Estoy buscando desvanecerme en la imagen de fondo cuando un visitante llega al sitio pero no cuando ya tienen esa imagen en su caché. Algo similar a esto:Hacer algo si una imagen no está cargada (jquery)
- Comprueba si ya hay una imagen de fondo en la memoria caché.
- Si es así, muéstrelo.
- Si no es así entonces ocultarlo y cuando se carga, se desvanecen en
Usando jQuery que puede ocultarlo y luego se desvanecen en cuando carga:.
$("#bkg img").hide();
$('#bkg img').load(function() {
$(this).fadeIn();
});
Pero, ¿cómo ¿Lo hago condicional así que solo ocurre si la imagen no está ya en la memoria caché?
Todo lo que he encontrado en foros se activa cuando una imagen termina de cargarse. ¿Cómo puedo activarlo porque no está cargado?
Gracias por cualquier ayuda, Lernz
@Sima basado en el código de that other thread lo he hecho hasta la siguiente - pero no parecen tener ningún efecto. Si puede ver dónde voy mal sería genial:
var storage = window.localStorage;
if (!storage.cachedElements) {
storage.cachedElements = "";
}
function logCache(source) {
if (storage.cachedElements.indexOf(source, 0) < 0) {
if (storage.cachedElements != "")
storage.cachedElements += ";";
storage.cachedElements += source;
}
}
function cached(source) {
return (storage.cachedElements.indexOf(source, 0) >= 0);
}
var plImages;
//On DOM Ready
$(document).ready(function() {
plImages = $("#fundo-1 img");
//log cached images
plImages.bind('load', function() {
logCache($(this).attr("src"));
});
//display cached images
plImages.each(function() {
var source = $(this).attr("src")
if (!cached(source)) {
$(this).hide().fadeIn();
}
});
});
No olvide '' .hide() 'primero (dentro del' si'). :) –
Sí, * solo * editado. Dang it, long day and week, tráelo el viernes. – karim79
guau que se ve increíble :) – simekadam