Cũ câu hỏi nhưng tôi nghĩ rằng tôi muốn ném vào một câu trả lời . Tôi sử dụng điều này cho hình ảnh tiêu đề lớn trên trang chủ. Hoạt động tốt bằng cách thao tác z-index cho hình ảnh hiện tại và tiếp theo, hiển thị hình ảnh tiếp theo ngay bên dưới hình ảnh hiện tại, sau đó làm mờ hình ảnh hiện tại.
CSS:
#jumbo-image-wrapper
{
width: 100%;
height: 650px;
position: relative;
}
.jumbo-image
{
width: 100%;
height: 100%;
position: absolute;
top: 0px;
left: 0px;
}
HTML:
<div id="jumbo-image-wrapper">
<div class="jumbo-image" style="background-image: url('img/your-image.jpg');">
</div>
<div class="jumbo-image" style="background-image: url('img/your-image-2'); display: none;">
</div>
</div>
Javascript (jQuery):
function jumboScroll()
{
var num_images = $("#jumbo-image-wrapper").children(".jumbo-image").length;
var next_index = jumbo_index+1;
if (next_index == num_images)
{
next_index = 0;
}
$("#jumbo-image-wrapper").children(".jumbo-image").eq(jumbo_index).css("z-index", "10");
$("#jumbo-image-wrapper").children(".jumbo-image").eq(next_index).css("z-index", "9");
$("#jumbo-image-wrapper").children(".jumbo-image").eq(next_index).show();
$("#jumbo-image-wrapper").children(".jumbo-image").eq(jumbo_index).fadeOut("slow");
jumbo_index = next_index;
setTimeout(function(){
jumboScroll();
}, 7000);
}
Nó sẽ làm việc không mờ er có bao nhiêu "slide" với lớp .jumbo-image nằm trong div # jumbo-image-wrapper.
Nguồn
2017-07-10 19:11:21
Vấn đề là hình ảnh mới không được tải vì thế có một chớp mắt của hình ảnh mới. (Bạn có thể thấy nó chỉ khi bạn có bộ nhớ cache trống, tất nhiên) –
Tôi đã nói "trường hợp đơn giản nhất". Một cách khác là tải trước hình ảnh thứ hai bằng javascript hoặc với một thẻ 'img' ẩn khác. Phai mờ bản gốc, rồi mờ dần trong cái mới. –
Hoặc bạn có thể sử dụng sự kiện 'tải' để xác định tải. –