Я попытался отобразить ряд элементов из меню продуктов, каждый со своим собственным изображением в файле JSON. Поскольку изображения загружаются как background-image
с встроенным CSS и НЕ простым 'ol img
, событие .onLoad
становится сложным. Решения, описанные здесь, не будут работать в этом случае: jQuery Ajax wait until all images are loadedПредотвращение воспроизведения содержимого JSON до тех пор, пока не будут загружены все изображения CSS
Как я могу узнать, когда эти изображения загружаются так тогда и только тогда, я могу выбрать, чтобы отображать контент для пользователя?
// gather all menu items
$.getJSON('menu.json', function(drinks) {
var output = "";
// loop through each item
for (var i in drinks.menuItems) {
output += "<div class='MenuItem'><div class='MenuItemThumb' style='background-image: url(" + drinks.menuItems[i].photos.squareThumb + ")'></div>" + drinks.menuItems[i].name + "</div>";
}
// render the items
// here's where I want to verify that all the "squareThumb" images have loaded.
document.getElementById("liveContent").innerHTML=output;
});
Любая причина, по которой вы не используете 'onLoad() 'для' тела'? Это должно срабатывать только после того, как все будет загружено, включая фоновые изображения. – Mario
Может быть, было бы лучше встроить эти изображения в CSS с URL-адресами данных? В этом случае не будет необходимости ждать, изображения будут загружены самим CSS – AndrewSilver