Я думаю, что фоновое изображение исчезает, когда посетитель прибывает на сайт, но не тогда, когда у него уже есть это изображение в кеше.Что-то вроде этого:
- Проверьте, уже есть ли фоновое изображение в кеше.
- Если оно есть, покажите его.
- Если оно не 'затем скрыть его, а когда он загрузится, добавить его.
Используя jQuery, я могу скрыть его, а затем добавить его при загрузке:
$("#bkg img").hide();
$('#bkg img').load(function() {
$(this).fadeIn();
});
Но как мне это сделать?сделать это условным, чтобы это происходило только в том случае, если изображение не уже кэшировано?
Все, что я нашел на форумах, срабатывает, когда изображение завершает загрузку.Как я могу заставить его срабатывать, потому что он не загружен?
Спасибо за любую помощь, Lernz
@ Sima На основе кода из этого другого потока У меня естьсделал это, насколько это возможно, но это, похоже, не имеет никакого эффекта.Если вы видите, где я иду не так, это было бы замечательно:
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();
}
});
});