JavaScript 幻灯片实现多屏切换效果涉及的基础概念包括 DOM 操作、事件处理、CSS 动画和定时器等。以下是详细的解答:
setInterval
或 setTimeout
来控制幻灯片的自动切换。以下是一个简单的 JavaScript 幻灯片实现多屏切换效果的示例代码:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Multi-Screen Slideshow</title>
<style>
.slideshow-container {
position: relative;
max-width: 800px;
margin: auto;
}
.slide {
display: none;
width: 100%;
}
.active {
display: block;
}
.prev, .next {
cursor: pointer;
position: absolute;
top: 50%;
width: auto;
padding: 16px;
margin-top: -22px;
color: white;
font-weight: bold;
font-size: 18px;
transition: 0.6s ease;
border-radius: 0 3px 3px 0;
user-select: none;
}
.next {
right: 0;
border-radius: 3px 0 0 3px;
}
.prev:hover, .next:hover {
background-color: rgba(0,0,0,0.8);
}
</style>
</head>
<body>
<div class="slideshow-container">
<div class="slide active" style="background-color: #717171;">Slide 1</div>
<div class="slide" style="background-color: #4CAF50;">Slide 2</div>
<div class="slide" style="background-color: #f44336;">Slide 3</div>
<a class="prev" onclick="plusSlides(-1)">❮</a>
<a class="next" onclick="plusSlides(1)">❯</a>
</div>
<script>
let slideIndex = 0;
showSlides();
function plusSlides(n) {
slideIndex += n;
showSlides();
}
function showSlides() {
let i;
let slides = document.getElementsByClassName("slide");
for (i = 0; i < slides.length; i++) {
slides[i].classList.remove("active");
}
slideIndex++;
if (slideIndex > slides.length) {slideIndex = 1}
slides[slideIndex-1].classList.add("active");
setTimeout(showSlides, 2000); // Change image every 2 seconds
}
</script>
</body>
</html>
requestAnimationFrame
来控制动画帧。setTimeout
而不是 setInterval
,并在每次切换后重新设置定时器。通过以上方法,可以实现一个简单且高效的多屏幻灯片切换效果。
领取专属 10元无门槛券
手把手带您无忧上云