
本文旨在帮助开发者构建一个自动轮播图,解决手动切换和自动播放的问题。我们将提供完整的 HTML、CSS 和 JavaScript 代码示例,并详细解释实现原理,确保即使是 JavaScript 新手也能轻松掌握。重点在于理解 JavaScript 如何控制轮播图的自动切换和手动控制逻辑,以及如何优化 CSS 样式以实现平滑的过渡效果。
轮播图的 HTML 结构主要包含以下几个部分:
<div class="slider-banners">
<button class="slider-button_left" style="left: 30px;"><i class="fa-solid fa-angle-left" style="font-size: 30px; color: #ffffff;"></i></button>
<div class="sliderbox">
<div class="sliderbox_image active"><img src="img/Slider/BannerStore1.jpg"></div>
<div class="sliderbox_image"><img src="img/Slider/BannerStore2.jpg"></div>
<div class="sliderbox_image"><img src="img/Slider/BannerStore3.jpg"></div>
<div class="sliderbox_image"><img src="img/Slider/BannerStore4.jpg"></div>
<div class="sliderbox_image"><img src="img/Slider/BannerStore5.jpg"></div>
<div class="sliderbox_image"><img src="img/Slider/BannerStore6.jpg"></div>
<div class="sliderbox_image"><img src="img/Slider/BannerStore7.jpg"></div>
<div class="sliderbox_image"><img src="img/Slider/BannerStore8.jpg"></div>
</div>
<button class="slider-button_right" style="right: 30px;"><i class="fa-solid fa-angle-right" style="font-size: 30px; color: #ffffff;"></i></button>
<ul class="slider-selectors_buttons">
<li class="active"></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
</ul>
</div>
<script src="https://kit.fontawesome.com/6b2cfcf1a5.js" crossorigin="anonymous"></script>CSS 样式主要用于控制轮播图的布局、外观和动画效果。以下是一些关键的 CSS 样式:
* {
box-sizing: border-box;
margin: 0;
padding: 0;
}
body {
font-family: "Times New Roman", Times, serif;
background-color: #4d4d4d;
margin: 0;
padding: 0;
}
.slider-banners {
display: flex;
justify-content: center;
height: auto;
width: 100%;
position: relative;
}
.sliderbox {
position: relative;
height: 380px;
width: 100%;
text-align: center;
overflow: hidden;
}
.sliderbox_image {
position: absolute;
display: flex;
align-items: center;
justify-content: center;
height: auto;
width: 100%;
opacity: 0;
}
.sliderbox_image.inactive {
opacity: 1;
}
.sliderbox_image.active {
opacity: 1;
position: relative;
}
.slider_image img {
width: 100%;
height: auto;
text-align: center;
}
.slider-button_left,
.slider-button_right {
position: absolute;
display: block;
padding: 8px;
background-color: #66323129;
align-self: center;
border: none;
border-radius: 5px;
transition: 0.4s ease;
z-index: 1000;
cursor: pointer;
}
.slider-button_left:hover,
.slider-button_right:hover {
background-color: #663231f0;
transform: translateX(2px);
padding: 10px;
}
.slider-selectors_buttons {
display: flex;
width: 100%;
position: absolute;
list-style: none;
bottom: -30px;
justify-content: space-evenly;
}
.slider-selectors_buttons li {
width: 15px;
height: 15px;
border-radius: 50%;
border: 1px solid black;
}
.slider-selectors_buttons li.active {
background-color: black;
}
.dissable-s {
width: 20px;
height: 20px;
border-radius: 50%;
margin: 15px 5px;
cursor: pointer;
background-color: #66323129;
border-color: #000000a0;
}
.dissable-s:hover {
background-color: #663231f0;
border-color: #000000cb;
}
.active-s {
width: 20px;
height: 20px;
border-radius: 50%;
margin: 15px 5px;
cursor: pointer;
background-color: #f47b3e;
border-color: #000000cb;
}JavaScript 代码负责实现轮播图的自动播放、手动切换和指示器按钮的联动。
立即学习“Java免费学习笔记(深入)”;
let sliderBanners = document.querySelector(".slider-banners"),
dots = document.querySelectorAll(".slider-selectors_buttons li"),
sliderContent = document.querySelectorAll(".slider-banners .sliderbox_image"),
leftArrow = document.querySelector(".slider-button_left"),
rightArrow = document.querySelector(".slider-button_right"),
sliderSpeed = 4500,
currentSlide = 0,
currentActive = 0,
sliderTimer;
window.onload = function() {
function playSlide(slide) {
for (let i = 0; i < dots.length; i++) {
sliderContent[i].classList.remove("active");
sliderContent[i].classList.remove("inactive");
dots[i].classList.remove("active");
}
if (slide < 0) {
slide = currentSlide = sliderContent.length - 1;
}
if (slide > sliderContent.length - 1) {
slide = currentSlide = 0;
}
if (currentActive != currentSlide) {
sliderContent[currentActive].classList.add("inactive");
}
sliderContent[slide].classList.add("active");
dots[slide].classList.add("active");
currentActive = currentSlide;
clearTimeout(sliderTimer);
sliderTimer = setTimeout(function() {
playSlide((currentSlide += 1));
}, sliderSpeed);
}
leftArrow.addEventListener("click", () => {
playSlide((currentSlide -= 1));
});
rightArrow.addEventListener("click", () => {
playSlide((currentSlide += 1));
});
for (let j = 0; j < dots.length; j++) {
dots[j].addEventListener("click", () => {
playSlide((currentSlide = dots.indexOf(this)));
});
}
playSlide(currentSlide);
};通过本文的教程,您应该能够创建一个基本的自动轮播图。您可以根据自己的需求,进一步扩展和优化轮播图的功能和样式。例如,可以添加过渡动画、自定义指示器样式、支持触摸滑动等。记住,理解 HTML 结构、CSS 样式和 JavaScript 逻辑是构建任何 Web 应用的基础。
以上就是创建自动轮播图:JavaScript 实现指南的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号