以下是一个使用纯 JavaScript 实现的简单轮播图插件示例:
HTML 结构:
<div class="carousel">
<div class="slides">
<img src="image1.jpg" alt="Image 1">
<img src="image2.jpg" alt="Image 2">
<img src="image3.jpg" alt="Image 3">
</div>
<button class="prev">Prev</button>
<button class="next">Next</button>
</div>
CSS 样式:
.carousel {
position: relative;
width: 500px;
height: 300px;
overflow: hidden;
}
.slides {
display: flex;
transition: transform 0.5s ease-in-out;
}
.slides img {
width: 100%;
height: auto;
}
.prev,
.next {
position: absolute;
top: 50%;
transform: translateY(-50%);
padding: 10px;
background-color: rgba(0, 0, 0, 0.5);
color: white;
border: none;
cursor: pointer;
}
.prev {
left: 10px;
}
.next {
right: 10px;
}
JavaScript 代码:
const slides = document.querySelectorAll('.slides img');
const prevBtn = document.querySelector('.prev');
const nextBtn = document.querySelector('.next');
let currentIndex = 0;
function showSlide(index) {
const offset = -index * 500;
document.querySelector('.slides').style.transform = `translateX(${offset}px)`;
}
prevBtn.addEventListener('click', () => {
currentIndex--;
if (currentIndex < 0) {
currentIndex = slides.length - 1;
}
showSlide(currentIndex);
});
nextBtn.addEventListener('click', () => {
currentIndex++;
if (currentIndex >= slides.length) {
currentIndex = 0;
}
showSlide(currentIndex);
});
// 自动轮播
setInterval(() => {
currentIndex++;
if (currentIndex >= slides.length) {
currentIndex = 0;
}
showSlide(currentIndex);
}, 3000);
这个轮播图插件的优势在于:
应用场景: 适用于网站的首页、产品展示页面等需要展示多张图片并突出重点的区域。
可能出现的问题及解决方法:
领取专属 10元无门槛券
手把手带您无忧上云