一个很小的jQuery脚本,可以帮助您使用最新的Bootstrap 5框架创建一个完全响应、移动友好的垂直旋转木马。
旋转木马幻灯片可以使用鼠标滚轮或触摸屏移动进行循环。
1.在文档中加载必要的jQuery库和Bootstrap 5框架。
<link rel="stylesheet" href="/path/to/cdn/bootstrap.min.css" /> <script src="/path/to/cdn/jquery.min.js"></script> <script src="/path/to/cdn/bootstrap.bundle.min.js"></script>
2.垂直转盘所需的HTML结构。
<div class="carousel-container justify-content-center">
<!-- data-bs-interval: the amount of time to delay between automatically cycling an item. If false, carousel will not automatically cycle -->
<!-- data-bs wrap: whether the carousel should cycle continuously (i.e go from first to last and vice-versa) -->
<div id="vertical-carousel" class="carousel slide" data-bs-ride="carousel" data-bs-interval="false"
data-bs-wrap="false">
<!-- Carousel slide indicators -->
<ol class="carousel-indicators">
<li data-bs-target="#vertical-carousel" data-bs-slide-to="0" class="active"></li>
<li data-bs-target="#vertical-carousel" data-bs-slide-to="1"></li>
<li data-bs-target="#vertical-carousel" data-bs-slide-to="2"></li>
<li data-bs-target="#vertical-carousel" data-bs-slide-to="3"></li>
</ol>
<div class="carousel-inner">
<!-- Carousel item represents each slide -->
<div class="carousel-item active" style="background-image:url(1.jpg);">
<div class="container">
<div class="row align-items-center" style="height: 100%">
<h1 class="display-3 text-center text-light">
Bootstrap 5 Vertical Carousel
</h1>
</div>
</div>
</div>
<div class="carousel-item" style="background-image:url(2.jpg);">
</div>
<div class="carousel-item" style="background-image:url(3.jpg);">
</div>
<div class="carousel-item" style="background-image:url(4.jpg);">
</div>
</div>
</div>
<!-- Carousel buttons -->
<button class="unclickable carousel-control-prev" type="button" data-bs-target="#vertical-carousel" data-bs-slide="prev">
<span class="clickable carousel-control-prev-icon" aria-hidden="true"></span>
<span class="visually-hidden">Previous</span>
</button>
<button class="unclickable carousel-control-next" type="button" data-bs-target="#vertical-carousel" data-bs-slide="next">
<span class="clickable carousel-control-next-icon" aria-hidden="true"></span>
<span class="visually-hidden">Next</span>
</button>
</div>
3.在jQuery之后加载垂直旋转木马的脚本。
<script src="./index.js"></script>
4.用于垂直旋转木马的其他CSS样式。
.carousel {
border-radius: 50px 50px 50px 50px;
overflow: hidden;
}
.carousel-inner, .carousel, .carousel-item, .carousel-container {
height: 100%;
width: 100%;
background-position: center center;
background-size: cover;
}
.carousel-item-prev:not(.carousel-item-end), .active.carousel-item-start {
transform: translate3d(0, -100%, 0);
-webkit-transform: translate3d(0, -100%, 0);
-moz-transform: translate3d(0, -100%, 0);
-ms-transform: translate3d(0, -100%, 0);
-o-transform: translate3d(0, -100%, 0);
}
.carousel-item-next:not(.carousel-item-start), .active.carousel-item-end {
transform: translate3d(0, 100%, 0);
-webkit-transform: translate3d(0, 100%, 0);
-ms-transform: translate3d(0, 100%, 0);
-moz-transform: translate3d(0, 100%, 0);
-o-transform: translate3d(0, 100%, 0);
}
.carousel-indicators {
top: 0;
margin: auto;
height: 20px;
right: 10px;
left: auto;
display: block;
}
.carousel-indicators [data-bs-target] {
background: none;
border: 2px solid white;
border-radius: 12px;
width: 12px;
height: 12px;
margin-bottom: 5px;
}
.carousel-indicators li.active {
background: white;
}
.carousel-control-next-icon, .carousel-control-prev-icon {
width: 4rem;
height: 4rem;
position: fixed;
top: 95%;
left: 50%;
transform: translate(-50%, -50%) rotate(90deg);
z-index: -1;
}
.carousel-control-prev-icon {
top: 5%;
}
.unclickable {
pointer-events: none;
}
.clickable {
pointer-events: all;
}
2022-02-20