帮我写个js轮播图
时间: 2023-08-06 13:26:43 浏览: 84
好的,以下是一个简单的JavaScript实现的轮播图:
HTML代码:
```
<div class="slider">
<img src="slide1.jpg" alt="Slide 1" class="slide">
<img src="slide2.jpg" alt="Slide 2" class="slide">
<img src="slide3.jpg" alt="Slide 3" class="slide">
<button class="prev">Prev</button>
<button class="next">Next</button>
</div>
```
CSS代码:
```
.slider {
position: relative;
width: 100%;
height: 300px;
overflow: hidden;
}
.slide {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
opacity: 0;
transition: opacity 1s ease-in-out;
}
.slide.active {
opacity: 1;
}
```
JavaScript代码:
```
let currentSlide = 0;
const slides = document.querySelectorAll('.slide');
const prevButton = document.querySelector('.prev');
const nextButton = document.querySelector('.next');
function showSlide(index) {
for (let i = 0; i < slides.length; i++) {
slides[i].classList.remove('active');
}
slides[index].classList.add('active');
}
function nextSlide() {
currentSlide++;
if (currentSlide >= slides.length) {
currentSlide = 0;
}
showSlide(currentSlide);
}
function prevSlide() {
currentSlide--;
if (currentSlide < 0) {
currentSlide = slides.length - 1;
}
showSlide(currentSlide);
}
nextButton.addEventListener('click', nextSlide);
prevButton.addEventListener('click', prevSlide);
showSlide(currentSlide);
```
解释:
1. 首先定义了一个变量`currentSlide`表示当前显示的轮播图索引,默认为0。
2. 通过`document.querySelectorAll('.slide')`获取所有轮播图元素,并将它们保存在`slides`数组中。
3. 通过`document.querySelector('.prev')`和`document.querySelector('.next')`获取“上一个”和“下一个”按钮元素。
4. 定义了`showSlide`函数,它接受一个索引参数`index`,将所有轮播图元素的`active`类移除,然后将指定索引的轮播图元素添加`active`类。
5. 定义了`nextSlide`函数和`prevSlide`函数,它们分别将`currentSlide`变量增加或减少,并根据当前`currentSlide`值调用`showSlide`函数显示对应的轮播图。
6. 最后通过`addEventListener`函数将“上一个”和“下一个”按钮的点击事件与`nextSlide`函数和`prevSlide`函数绑定,并调用`showSlide`函数显示当前`currentSlide`索引对应的轮播图。
以上代码仅为基本实现,还可以通过添加自动播放、动画效果等方式进行扩展。
阅读全文