Событие связывания JQuery, когда CSS background-image полностью загружено

Я хотел бы вызвать событие после того, как фоновое изображение полностью загружено. Изображение сделано из динамического скрипта PHP.

$("#box").css("background-image","url(image.php)");

может быть, я могу попытаться получить изображение в невидимом <img> и когда загрузка изображения (.load()) устанавливает background-image с помощью src этого невидимого <img>? Точно сказать не могу...

Спасибо за помощь.

2 ответа

Решение

Вы можете использовать мой плагин jQuery под названием waitForImages, который поможет с этим...

$("#box").css("background-image", "url(image.php)").waitForImages({
   waitForAll: true,
   finished: function() {
       // Background image has loaded.
   }
});

В противном случае, сделать это вручную...

var image = 'image.php',

    img = $('<img />');

img.bind('load', function() {
     // Background image has loaded.
});

img.attr('src', image);

$('#box').css('background-image', 'url(' + image + ')');
$("#box img").load(function() {  
    //the image elements in #box are fully loaded.
});
Другие вопросы по тегам