HTML、CSS和JavaScript实现轮播图
这里提供一种基于HTML、CSS和JavaScript的轮播图实现方法:
HTML部分:
<div class='slider'>
<div class='slides'>
<img src='image1.jpg' alt=''>
<img src='image2.jpg' alt=''>
<img src='image3.jpg' alt=''>
<img src='image4.jpg' alt=''>
</div>
</div>
CSS部分:
.slider {
width: 100%;
overflow: hidden;
}
.slides {
display: flex;
width: 400%;
}
.slides img {
width: 25%;
height: auto;
}
.slide-active {
transform: translateX(-25%);
}
JavaScript部分:
const slides = document.querySelectorAll('.slides img');
const slideCount = slides.length;
let currentSlide = 0;
function nextSlide() {
slides[currentSlide].classList.remove('slide-active');
currentSlide = (currentSlide + 1) % slideCount;
slides[currentSlide].classList.add('slide-active');
}
setInterval(nextSlide, 3000);
解释一下:
-
HTML部分:轮播图的容器是一个div,其中包含一个图片列表,每个图片都是一个img标签,alt属性可以设置图片的描述文字。
-
CSS部分:容器设置为100%宽度,超出部分隐藏。图片列表通过flex布局实现横向排列,每个图片占据25%宽度。slide-active类用于标记当前显示的图片,通过transform属性实现平移动画。
-
JavaScript部分:首先获取所有图片和图片数量,定义一个变量表示当前显示的图片序号。nextSlide函数用于切换到下一张图片,先将当前显示的图片移除slide-active类,然后计算下一张图片的序号,最后将其添加slide-active类。setInterval函数用于定时调用nextSlide函数,实现自动轮播。
以上代码仅供参考,实际实现时还需要根据具体需求进行调整。
原文地址: https://www.cveoy.top/t/topic/gQ5j 著作权归作者所有。请勿转载和采集!