Я использую Jimdo и у меня есть данный div (содержащий 3 sub-div, я думаю, что это моя общая проблема, но я не уверен), я нашел с помощью браузера:
<div class="jtpl-background-area jqbga-container jqbga-web--image" background-area="" style="background-image: url('https://image.jimcdn.com/app/cms/image/transf/dimension=767x/path/s4354a59fbfee63e4/backgroundarea/ibb91266a7f033fa3/version/1529172695/image.jpg');background-position: 54.0833% 41.0025%;"></div>
Как сделатьЯ получаю функцию, запускаемую после загрузки фонового изображения?
Я уже потратил на это часы, испробовал множество способов, которые я нашел здесь, или инструменты, такие как waitforimages, - все еще безуспешно.Что происходит с Jimdo / этот div?Как получить что-то, запускаемое после загрузки фонового изображения?
var src = $('.jtpl-background-area').css('background-image');
var url = src.match(/\((.*?)\)/)[1].replace(/('|")/g,'');
var img = new Image();
img.onload = function() {
$('.jtpl-background-area').css('-webkit-animation', 'fadein 4s');
}
img.src = url;
if (img.complete) img.onload();
не работает.
$('.jtpl-background-area').waitForImages(true).done(function() {
$('.jtpl-background-area').css('-webkit-animation', 'fadein 4s');
});
не работает (скрипт waitforimages-включен правильно и непрозрачность.jtpl-background-area имеет значение 0 в css).
Любые идеи?
$(window).on('load', function() {
$(".jtpl-background-area").css('-webkit-animation', 'fadein 4s');
});
приводит к тому, что фоны часто появляются слишком поздно.Страница отображается, пока картинки еще не готовы / полностью загружены.
-
Редактировать:
Относительно Скотта Маркуса и ответа здесь 'adeneo' ( Подождитедля полной загрузки фоновых изображений в CSS ):
$(window).on('load', function() {
$(".jtpl-background-area jqbga-container jqbga-web-
image").ready(function() {
$(".jtpl-background-area").velocity({ opacity: 1 },{ duration: 3000});
})
});
Это здесь "работает" - но мои bg-изображения появляются слишком поздно.Но почему ничего не происходит, если я обменяю это на
var src = $(".jtpl-background-area jqbga-container jqbga-web-image");
var url = src.match(/\((.*?)\)/)[1].replace(/('|")/g,'');
var img = new Image();
img.onload = function() {
$('.jtpl-background-area').velocity({ opacity: 1 },{ duration: 3000});
}
img.src = url;
if (img.complete) img.onload();
?Где моя ошибка?Почему это не работает, и моя страница застряла?Он остается белым и вообще не загружается с этим кодом.
Или другими словами - как мне заставить
var src = $('#test').css('background-image');
var url = src.match(/\((.*?)\)/)[1].replace(/('|")/g,'');
var img = new Image();
img.onload = function() {
alert('image loaded');
}
img.src = url;
if (img.complete) img.onload();
работать с моим (данным и неизменным)
<div class="jtpl-background-area jqbga-container jqbga-web--image" background-area="" style="background-image: url('https://image.jimcdn.com/app/cms/image/transf/dimension=767x/path/s4354a59fbfee63e4/backgroundarea/ibb91266a7f033fa3/version/1529172695/image.jpg');background-position: 54.0833% 41.0025%;"></div>
точно?