У меня проблема с поведением PreloadJS в Firefox. На самом деле мне трудно поверить, что у кого-то еще не было этой проблемы раньше (не удалось найти никого, описывающего такое же поведение), поэтому, возможно, я просто делаю что-то не так... он отлично работает в Google Chrome.
Здесь JS-часть:
$(document).ready(function () {
var preloadBG = new createjs.LoadQueue();
preloadBG.addEventListener("fileload", function(){
$('#light').css("background-color","green");
$("#container").append('<div id="image"></div>');
});
preloadBG.loadFile('http://i.imgur.com/ifvZ5Ss.jpg');
});
См. пример здесь: http://codepen.io/Deto15/pen/KdpRdx.
Вы заметите поведение, которое я описываю, если запустите его с Firefox и Ctrl+F5.
Итак, в основном, что я делаю здесь, это:
- На domready PreloadJS предварительно загружает изображение (на самом деле оно еще нигде на странице не используется.
- По завершении предварительной загрузки красный кружок становится зеленым.
- Сразу после этого новый div добавляется к странице, и этот div использует предварительно загруженное ранее изображение в качестве фонового изображения.
В Chrome он ведет себя так: изображение появляется почти в тот же момент, когда круг меняет цвет, и это имеет смысл, поскольку оно было предварительно загружено. В Firefox кружок меняет цвет, а затем возникает задержка перед появлением изображения — как будто Firefox загружает его снова.
Есть ли какое-либо объяснение этому поведению и способ исправить это?