用js写个轮播
很高兴为您提供帮助!这里是一个简单的 JavaScript 轮播示例。
HTML 代码:
<div class="slider">
<img src="img1.jpg" alt="Slide 1" class="slide">
<img src="img2.jpg" alt="Slide 2" class="slide">
<img src="img3.jpg" alt="Slide 3" class="slide">
<img src="img4.jpg" alt="Slide 4" class="slide">
<img src="img5.jpg" alt="Slide 5" class="slide">
<div class="prev"></div>
<div class="next"></div>
</div>
CSS 代码:
.slider {
position: relative;
height: 400px;
overflow: hidden;
}
.slide {
position: absolute;
width: 100%;
height: 100%;
opacity: 0;
transition: opacity 1s ease-in-out;
}
.slide.active {
opacity: 1;
}
.prev, .next {
position: absolute;
top: 50%;
transform: translateY(-50%);
width: 50px;
height: 50px;
background-color: rgba(255, 255, 255, 0.5);
cursor: pointer;
transition: background-color 0.3s ease-in-out;
}
.prev:hover, .next:hover {
background-color: rgba(255, 255, 255, 0.8);
}
.prev:before, .next:after {
content: "";
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
width: 20px;
height: 20px;
border-top: 2px solid #333;
border-left: 2px solid #333;
transition: transform 0.3s ease-in-out;
}
.prev:hover:before, .next:hover:after {
transform: translate(-50%, -50%) rotate(-45deg);
}
.next:before {
transform: translate(-50%, -50%) rotate(180deg);
}
JavaScript 代码:
var sliderIndex = 0;
var slides = document.getElementsByClassName("slide");
var prev = document.getElementsByClassName("prev")[0];
var next = document.getElementsByClassName("next")[0];
showSlide(sliderIndex);
function showSlide(index) {
if (index < 0) {
index = slides.length - 1;
} else if (index >= slides.length) {
index = 0;
}
for (var i = 0; i < slides.length; i++) {
slides[i].classList.remove("active");
}
slides[index].classList.add("active");
}
prev.addEventListener("click", function() {
sliderIndex--;
showSlide(sliderIndex);
});
next.addEventListener("click", function() {
sliderIndex++;
showSlide(sliderIndex);
});
setInterval(function() {
sliderIndex++;
showSlide(sliderIndex);
}, 5000);
解释一下代码:
首先,我们定义了一个变量 sliderIndex 来跟踪当前显示的幻灯片。然后,我们获取所有幻灯片元素和上一张/下一张按钮元素,并定义一个 showSlide 函数来控制幻灯片的显示。在 showSlide 函数中,我们先检查给定的索引是否在幻灯片的范围内,如果不在,则将索引设置为对应的幻灯片。然后,我们循环遍历所有幻灯片元素,并将它们的 active 类删除,最后将当前幻灯片的 active 类添加。接下来,我们添加了两个事件侦听器来监听上一张/下一张按钮的点击事件,并在点击时更新 sliderIndex 并调用 showSlide 函数来显示相应的幻灯片。最后,我们使用 setInterval 函数来自动切换幻灯片,每隔 5 秒钟切换一次。
原文地址: https://www.cveoy.top/t/topic/yKL 著作权归作者所有。请勿转载和采集!