Cập nhật 2019 ...
Bootstrap 4
Băng chuyền đã thay đổi trong 4.x và quá trình chuyển đổi hoạt ảnh nhiều trang chiếu có thể bị ghi đè như thế này ...
.carousel-inner .carousel-item-right.active,
.carousel-inner .carousel-item-next {
transform: translateX(33.33%);
}
.carousel-inner .carousel-item-left.active,
.carousel-inner .carousel-item-prev {
transform: translateX(-33.33%)
}
.carousel-inner .carousel-item-right,
.carousel-inner .carousel-item-left{
transform: translateX(0);
}
Bootstrap 4 Alpha.6 Demo
Bootstrap 4.0.0 (hiển thị 4, nâng cấp 1 tại một thời điểm)
Bootstrap 4.1.0 (hiển thị 3, nâng cấp 1 cùng một lúc)
Bootstrap 4.1.0 (nâng cấp cả 4 cùng một lúc)
Bootstrap 4.3.1 đáp ứng (hiển thị nhiều, nâng cao 1) new
Băng chuyền Bootstrap 4.3.1 có thẻnew
Một tùy chọn khác là băng chuyền đáp ứng chỉ hiển thị và nâng cấp 1 trang trình bày trên màn hình nhỏ hơn , nhưng hiển thị nhiều trang trình bày là màn hình lớn hơn . Thay vì sao chép các trang trình bày như ví dụ trước, cái này điều chỉnh CSS và chỉ sử dụng jQuery để di chuyển các trang trình bày phụ để cho phép quay vòng liên tục (quấn quanh):
Vui lòng không chỉ sao chép và dán mã này. Trước tiên, hãy hiểu nó hoạt động như thế nào.
Bootstrap 4 Responsive (hiển thị 3, 1 slide trên thiết bị di động)
@media (min-width: 768px) {
/* show 3 items */
.carousel-inner .active,
.carousel-inner .active + .carousel-item,
.carousel-inner .active + .carousel-item + .carousel-item {
display: block;
}
.carousel-inner .carousel-item.active:not(.carousel-item-right):not(.carousel-item-left),
.carousel-inner .carousel-item.active:not(.carousel-item-right):not(.carousel-item-left) + .carousel-item,
.carousel-inner .carousel-item.active:not(.carousel-item-right):not(.carousel-item-left) + .carousel-item + .carousel-item {
transition: none;
}
.carousel-inner .carousel-item-next,
.carousel-inner .carousel-item-prev {
position: relative;
transform: translate3d(0, 0, 0);
}
.carousel-inner .active.carousel-item + .carousel-item + .carousel-item + .carousel-item {
position: absolute;
top: 0;
right: -33.3333%;
z-index: -1;
display: block;
visibility: visible;
}
/* left or forward direction */
.active.carousel-item-left + .carousel-item-next.carousel-item-left,
.carousel-item-next.carousel-item-left + .carousel-item,
.carousel-item-next.carousel-item-left + .carousel-item + .carousel-item,
.carousel-item-next.carousel-item-left + .carousel-item + .carousel-item + .carousel-item {
position: relative;
transform: translate3d(-100%, 0, 0);
visibility: visible;
}
/* farthest right hidden item must be abso position for animations */
.carousel-inner .carousel-item-prev.carousel-item-right {
position: absolute;
top: 0;
left: 0;
z-index: -1;
display: block;
visibility: visible;
}
/* right or prev direction */
.active.carousel-item-right + .carousel-item-prev.carousel-item-right,
.carousel-item-prev.carousel-item-right + .carousel-item,
.carousel-item-prev.carousel-item-right + .carousel-item + .carousel-item,
.carousel-item-prev.carousel-item-right + .carousel-item + .carousel-item + .carousel-item {
position: relative;
transform: translate3d(100%, 0, 0);
visibility: visible;
display: block;
visibility: visible;
}
}
<div class="container-fluid">
<div id="carouselExample" class="carousel slide" data-ride="carousel" data-interval="9000">
<div class="carousel-inner row w-100 mx-auto" role="listbox">
<div class="carousel-item col-md-4 active">
<img class="img-fluid mx-auto d-block" src="//placehold.it/600x400/000/fff?text=1" alt="slide 1">
</div>
<div class="carousel-item col-md-4">
<img class="img-fluid mx-auto d-block" src="//placehold.it/600x400?text=2" alt="slide 2">
</div>
<div class="carousel-item col-md-4">
<img class="img-fluid mx-auto d-block" src="//placehold.it/600x400?text=3" alt="slide 3">
</div>
<div class="carousel-item col-md-4">
<img class="img-fluid mx-auto d-block" src="//placehold.it/600x400?text=4" alt="slide 4">
</div>
<div class="carousel-item col-md-4">
<img class="img-fluid mx-auto d-block" src="//placehold.it/600x400?text=5" alt="slide 5">
</div>
<div class="carousel-item col-md-4">
<img class="img-fluid mx-auto d-block" src="//placehold.it/600x400?text=6" alt="slide 6">
</div>
<div class="carousel-item col-md-4">
<img class="img-fluid mx-auto d-block" src="//placehold.it/600x400?text=7" alt="slide 7">
</div>
<div class="carousel-item col-md-4">
<img class="img-fluid mx-auto d-block" src="//placehold.it/600x400?text=8" alt="slide 7">
</div>
</div>
<a class="carousel-control-prev" href="#carouselExample" role="button" data-slide="prev">
<i class="fa fa-chevron-left fa-lg text-muted"></i>
<span class="sr-only">Previous</span>
</a>
<a class="carousel-control-next text-faded" href="#carouselExample" role="button" data-slide="next">
<i class="fa fa-chevron-right fa-lg text-muted"></i>
<span class="sr-only">Next</span>
</a>
</div>
</div>
Ví dụ - Bootstrap 4 Responsive (hiển thị 4, 1 slide trên thiết bị di động)
Ví dụ - Bootstrap 4 Responsive (hiển thị 5, 1 slide trên thiết bị di động)
Bootstrap 3
Đây là một ví dụ 3.x trên Bootply: http://bootply.com/89193
Bạn cần đặt toàn bộ một hàng hình ảnh trong mục đang hoạt động. Đây là một phiên bản khác không xếp chồng hình ảnh ở độ rộng màn hình nhỏ hơn: http://bootply.com/92514
CHỈNH SỬA Phương pháp thay thế để tiến từng trang một :
Sử dụng jQuery để sao chép các mục tiếp theo ..
$('.carousel .item').each(function(){
var next = $(this).next();
if (!next.length) {
next = $(this).siblings(':first');
}
next.children(':first-child').clone().appendTo($(this));
if (next.next().length>0) {
next.next().children(':first-child').clone().appendTo($(this));
}
else {
$(this).siblings(':first').children(':first-child').clone().appendTo($(this));
}
});
Và sau đó CSS để định vị cho phù hợp ...
Trước 3.3.1
.carousel-inner .active.left { left: -33%; }
.carousel-inner .next { left: 33%; }
Sau 3.3.1
.carousel-inner .item.left.active {
transform: translateX(-33%);
}
.carousel-inner .item.right.active {
transform: translateX(33%);
}
.carousel-inner .item.next {
transform: translateX(33%)
}
.carousel-inner .item.prev {
transform: translateX(-33%)
}
.carousel-inner .item.right,
.carousel-inner .item.left {
transform: translateX(0);
}
Điều này sẽ hiển thị 3 lần cùng một lúc, nhưng chỉ trượt một lần:
Bản trình diễn Bootstrap 3.x
Vui lòng không sao chép và dán mã này. Trước tiên, hãy hiểu nó hoạt động như thế nào. Câu trả lời này ở đây để giúp bạn tìm hiểu .
Nhân đôi băng chuyền bootstrap 4 đã sửa đổi này chỉ hoạt động đúng một nửa (vòng lặp cuộn ngừng hoạt động)
làm thế nào để tạo 2 thanh trượt bootstrap trong một trang mà không trộn css và jquery của chúng?
Bootstrap 4 Multi Carousel hiển thị 4 hình ảnh thay vì 3