昨天晚上臨時接到一個奇葩需求,有一個從左到右的滾動列表,要求實現開屏自動滾動,然后到最后一屏的時候停止不動,右箭頭置灰,然后點左側箭頭可以往左滾,同時右箭頭功能也恢復。
使用 Swiper 實現了,示例代碼如下:
html:
<link rel="stylesheet" >
<div class="swiper mySwiper">
<div class="swiper-wrapper">
<div class="swiper-slide">Slide 1</div>
<div class="swiper-slide">Slide 2</div>
<div class="swiper-slide">Slide 3</div>
<div class="swiper-slide">Slide 4</div>
<div class="swiper-slide">Slide 5</div>
<div class="swiper-slide">Slide 6</div>
<div class="swiper-slide">Slide 7</div>
<div class="swiper-slide">Slide 8</div>
<div class="swiper-slide">Slide 9</div>
</div>
<div class="swiper-button-next"></div>
<div class="swiper-button-prev"></div>
</div>
<script type="text/javascript" src="/jquery/jquery.min.js"></script>
<script src="https://unpkg.com/swiper@8/swiper-bundle.js"> </script>
css:
html,
body {
position: relative;
height: 100%;
}
body {
background: #eee;
font-family: Helvetica Neue, Helvetica, Arial, sans-serif;
font-size: 14px;
color: #000;
margin: 0;
padding: 0;
}
.swiper {
width: 100%;
height: 100%;
}
.swiper-slide {
text-align: center;
font-size: 18px;
background: #fff;
display: flex;
justify-content: center;
align-items: center;
}
.swiper-slide img {
display: block;
width: 100%;
height: 100%;
object-fit: cover;
}
js:
var swiper = new Swiper(".mySwiper", {
slidesPerView: 5,
spaceBetween: 30,
pagination: {
el: ".swiper-pagination",
clickable: true,
},
loop: false,
autoplay: {
delay: 3000,
stopOnLastSlide: true,
},
navigation: {
nextEl: '.swiper-button-next',
prevEl: '.swiper-button-prev',
},
});
可以實現需求功能:slidesPerView
的參數值根據自己需求設置
微信截圖_20241204091745.png
然后最奇葩的需求出現了,要求:從最后一屏開始展示(就是打開首屏顯示Slide5-9),左箭頭可以點擊往左滾動,然后還可以自動滾動,直到最后一屏時還是停止不動。
當時就感覺瘋了,這是什么奇葩需求。。。
仔細找了一下 Swiper 的參數,發現還真有可以實現的:initialSlide
屬性用于設置初始化時顯示的幻燈片索引
// 設置初始顯示的slide
initialSlide: $('.swiper-slide').length - 1, // 最后一個slide的索引
總結:
Swiper 的功能實在是太牛了,好多參數仔細研究下還是很有用的。