js实现轮播图
时间: 2023-08-10 19:05:56 浏览: 54
好的,以下是一个简单的基于JavaScript实现的轮播图示例:
HTML结构:
```html
<div class="slider">
<ul class="slides">
<li><img src="image1.jpg"></li>
<li><img src="image2.jpg"></li>
<li><img src="image3.jpg"></li>
</ul>
</div>
```
CSS样式:
```css
.slider {
position: relative;
width: 100%;
height: 500px;
overflow: hidden;
}
.slides {
position: absolute;
top: 0;
left: 0;
width: 300%;
height: 100%;
display: flex;
transition: all 0.5s ease-in-out;
}
.slides li {
width: 33.333%;
list-style: none;
}
.slides img {
width: 100%;
height: 100%;
object-fit: cover;
}
```
JavaScript代码:
```javascript
const slider = document.querySelector('.slider');
const slides = document.querySelectorAll('.slides li');
let currentSlide = 0;
function nextSlide() {
slides[currentSlide].classList.remove('active');
currentSlide = (currentSlide + 1) % slides.length;
slides[currentSlide].classList.add('active');
slider.style.transform = `translateX(-${currentSlide * 100}%)`;
}
setInterval(nextSlide, 3000);
```
这个示例中,我们通过JavaScript代码来实现轮播图的自动播放效果。我们首先获取到了轮播图的容器(`.slider`)以及轮播图中的每一张图片(`.slides li`)。
我们定义了一个 `currentSlide` 变量来表示当前显示的图片序号,然后编写了一个 `nextSlide` 函数,在每次自动播放时都会被调用。这个函数首先移除当前显示的图片的 `active` 类,然后计算出下一张图片的序号,并为其添加 `active` 类。最后,我们通过设置容器的 `transform` 属性来移动图片,实现轮播效果。
最后,我们使用 `setInterval` 方法来每隔3秒钟调用一次 `nextSlide` 函数,从而实现轮播图的自动播放。