JavaScript 轮播图实现教程:简洁易懂的代码示例
以下是一个简单的 JavaScript 轮播图实现:
HTML:
<div class='slider'>
<div class='slides'>
<img src='image1.jpg'>
<img src='image2.jpg'>
<img src='image3.jpg'>
</div>
<div class='controls'>
<div class='prev'>
<i class='fas fa-angle-left'></i>
</div>
<div class='next'>
<i class='fas fa-angle-right'></i>
</div>
</div>
</div>
CSS:
.slider {
position: relative;
width: 100%;
height: 400px;
overflow: hidden;
}
.slides {
position: absolute;
width: 300%;
height: 100%;
left: 0;
transition: left 0.5s ease-in-out;
}
.slides img {
width: 33.3333%;
height: 100%;
float: left;
}
.controls {
position: absolute;
top: 50%;
transform: translateY(-50%);
width: 100%;
height: 30px;
display: flex;
justify-content: space-between;
z-index: 1;
}
.prev, .next {
width: 30px;
height: 30px;
background-color: rgba(0, 0, 0, 0.4);
display: flex;
justify-content: center;
align-items: center;
cursor: pointer;
transition: background-color 0.3s ease-in-out;
}
.prev:hover, .next:hover {
background-color: rgba(0, 0, 0, 0.6);
}
.prev i, .next i {
color: #fff;
font-size: 20px;
}
JavaScript:
const slider = document.querySelector('.slider');
const slides = document.querySelector('.slides');
const prevBtn = document.querySelector('.prev');
const nextBtn = document.querySelector('.next');
const slideWidth = slider.clientWidth / 3;
let slideIndex = 0;
function slideNext() {
if (slideIndex === 2) {
slideIndex = 0;
} else {
slideIndex++;
}
slides.style.left = -slideWidth * slideIndex + 'px';
}
function slidePrev() {
if (slideIndex === 0) {
slideIndex = 2;
} else {
slideIndex--;
}
slides.style.left = -slideWidth * slideIndex + 'px';
}
nextBtn.addEventListener('click', slideNext);
prevBtn.addEventListener('click', slidePrev);
这个轮播图有三张图片,每张图片宽度为 slider 的 1/3,通过控制 slides 的 left 属性实现轮播。点击 prev 或 next 按钮时,判断当前 slideIndex,如果到了最后一张或第一张,就从头开始或从尾开始。
原文地址: https://www.cveoy.top/t/topic/mw0n 著作权归作者所有。请勿转载和采集!