JavaScript 轮播图(含过渡动画)
时间: 2023-10-13 11:04:26 浏览: 104
jquery带缩略图和多种过渡动画效果的轮播图特效源码.zip
好的,以下是一个简单的 JavaScript 轮播图实现,包含过渡动画的效果。
HTML 结构:
```html
<div class="slider">
<img src="image1.jpg" alt="image 1">
<img src="image2.jpg" alt="image 2">
<img src="image3.jpg" alt="image 3">
<img src="image4.jpg" alt="image 4">
<img src="image5.jpg" alt="image 5">
</div>
```
CSS 样式:
```css
.slider {
position: relative;
width: 800px;
height: 400px;
overflow: hidden;
}
.slider img {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
opacity: 0;
transition: opacity 1s ease-in-out;
}
.slider img.active {
opacity: 1;
}
```
JavaScript 代码:
```js
const slider = document.querySelector('.slider');
const images = slider.querySelectorAll('img');
let index = 0;
setInterval(() => {
images[index].classList.remove('active');
index = (index + 1) % images.length;
images[index].classList.add('active');
}, 3000);
```
解析:
首先,我们获取包含所有轮播图的容器和所有的图片元素。然后,我们定义一个 `index` 变量来追踪当前显示的图片。我们使用 `setInterval` 方法每隔 3 秒钟就切换一张图片。在每次切换之前,我们将当前图片的 `active` 类名移除,然后将 `index` 加 1,确保下一张图片被选中。最后,我们向新的图片添加 `active` 类名,用于触发 CSS 过渡动画。
CSS 样式中,我们使用 `position: absolute` 将所有图片堆叠在一起,并将 `opacity` 设置为 0。这样,只有 `active` 类名的图片才会被显示出来。我们还使用 `transition` 属性来定义过渡动画的效果。
你可以根据需要自定义 CSS 样式和 JavaScript 代码来实现更复杂的轮播图效果。
阅读全文