js编写一个简单的轮播图,带箭头和圆点和自动播放效果
时间: 2024-02-15 20:02:33 浏览: 59
jquery实现简单自动轮播图效果
好的,我可以为您提供一个简单的轮播图实现的代码示例。以下是基于 JavaScript 和 HTML/CSS 的轮播图示例代码:
HTML:
```html
<div class="slider">
<div class="slides">
<img src="image1.jpg">
<img src="image2.jpg">
<img src="image3.jpg">
</div>
<div class="arrow prev"></div>
<div class="arrow next"></div>
<div class="dots">
<span class="dot active"></span>
<span class="dot"></span>
<span class="dot"></span>
</div>
</div>
```
CSS:
```css
.slider {
position: relative;
overflow: hidden;
}
.slides {
display: flex;
width: 100%;
}
.slides img {
width: 100%;
height: auto;
}
.arrow {
position: absolute;
top: 50%;
transform: translateY(-50%);
width: 50px;
height: 50px;
background: #fff;
cursor: pointer;
z-index: 2;
}
.prev {
left: 20px;
}
.next {
right: 20px;
}
.dots {
position: absolute;
bottom: 20px;
left: 50%;
transform: translateX(-50%);
display: flex;
justify-content: center;
align-items: center;
}
.dot {
width: 10px;
height: 10px;
border-radius: 50%;
background: #fff;
margin: 0 10px;
cursor: pointer;
transition: all 0.3s ease;
}
.dot.active {
transform: scale(1.5);
}
```
JavaScript:
```js
const slides = document.querySelector(".slides");
const images = document.querySelectorAll(".slides img");
const prev = document.querySelector(".prev");
const next = document.querySelector(".next");
const dots = document.querySelectorAll(".dot");
let index = 0;
function updateSlide() {
slides.style.transform = `translateX(-${index * 100}%)`;
}
function setActiveDot() {
dots.forEach((dot, i) => {
dot.classList.remove("active");
if (i === index) {
dot.classList.add("active");
}
});
}
function prevSlide() {
index--;
if (index < 0) {
index = images.length - 1;
}
updateSlide();
setActiveDot();
}
function nextSlide() {
index++;
if (index >= images.length) {
index = 0;
}
updateSlide();
setActiveDot();
}
function autoPlay() {
setInterval(() => {
nextSlide();
}, 3000);
}
prev.addEventListener("click", prevSlide);
next.addEventListener("click", nextSlide);
dots.forEach((dot, i) => {
dot.addEventListener("click", () => {
index = i;
updateSlide();
setActiveDot();
});
});
autoPlay();
```
这段代码实现了一个基本的轮播图,包括箭头、圆点和自动播放效果。其中 `slides` 是轮播图容器,`images` 是轮播图中的图片,`prev` 和 `next` 是箭头元素,`dots` 是圆点容器,`index` 是当前轮播图的索引。
`updateSlide()` 函数用于更新轮播图的位置,`setActiveDot()` 函数用于设置当前圆点的样式。`prevSlide()` 和 `nextSlide()` 函数分别用于向前和向后切换轮播图。`autoPlay()` 函数用于自动播放轮播图,每隔 3 秒钟自动切换到下一张轮播图。
最后,通过事件监听器将箭头和圆点与对应的函数绑定,启动自动播放效果。
阅读全文