Bạn không thể phát hiện tải trên ảnh nền. Bạn không thể chuyển đổi/tạo ảnh động nền.
Những gì bạn và các câu trả lời khác đang cố gắng thực hiện là làm mờ/animate toàn bộ div
sau khi tải phần tử img
. Điều này không làm việc mọi lúc hoàn hảo. Bởi vì, IMO này gây rối vì toàn bộ div
(cùng với nội dung của nó) phải được giữ ẩn trong khi hình ảnh đang tải hoặc bạn ẩn div
và sau đó cố gắng làm mờ nó. Điều này sẽ cho bạn nhấp nháy khi div
bị ẩn đột ngột trước khi mờ dần.
Điều tôi đề nghị là bạn sử dụng phần tử giả img
như bạn đã làm, nhưng đặt nó tuyệt đối (liên quan đến div
) với cùng kích thước và tiêu cực z-index
. Bằng cách này, các div
và nội dung của nó có thể được nhìn thấy trong khi hình ảnh đang tải. Sau khi tải, bạn phai mờ hình img
ở phía sau (sau số div
), sau đó gán background-image
và sau đó xóa hình giả img
.
Demo: http://jsfiddle.net/abhitalks/q7cvn2nd/
Xem đoạn này:
var $img = $("<img />");
$img.load(function() {
$(this).fadeIn("slow", function() {
$('.feature').css('background-image', 'url(http://lorempixel.com/240/240)');
$(this).remove();
});
});
$img.addClass("dummy");
$img.attr('src', 'http://lorempixel.com/240/240');
$(".feature").append($img);
* {
box-sizing: border-box;
}
.feature {
position: relative;
width: 240px; height: 240px;
border: 1px solid gray;
padding: 8px; color: #f00;
background-color: transparent;
background-repeat: no-repeat;
background-size: 100% 100%;
}
img.dummy {
top: 0; left: 0; bottom: 0; right: 0;
width: 100%; height: 100%;
position: absolute;
z-index: -1;
display: none;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="feature"><h1>This is some text.</h1></div>
quan trọng: Đừng quên xóa hình ảnh giả.
Có một nhấp nháy xảy ra do '.hide' anyway để sửa chữa rằng –
Bạn có thể ẩn '$ (". feature ")' trước khi tải và sử dụng mili giây cho fadeIn, xem http://jsfiddle.net/nud2bfb1/4/ –
Không, bạn đang mờ dần trong '. feature' hình ảnh tải bình thường bên trong nó ... làm chậm internet của bạn để xem. Tôi muốn hình ảnh mờ dần sau khi được tải đầy đủ –