多张图片同时展示而且自动轮播全部代码
时间: 2023-10-10 08:09:43 浏览: 80
以下是一个使用 HTML、CSS 和 JavaScript 实现多张图片自动轮播的示例代码:
```html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>自动轮播</title>
<style>
.container {
display: flex;
justify-content: center;
align-items: center;
height: 300px;
}
.slide {
flex: 0 0 600px;
height: 300px;
margin-right: 30px;
background-color: #eee;
background-size: cover;
background-position: center;
animation: slide 10s infinite;
}
@keyframes slide {
0% {
transform: translateX(0);
}
20% {
transform: translateX(0);
}
25% {
transform: translateX(-630px);
}
45% {
transform: translateX(-630px);
}
50% {
transform: translateX(-1260px);
}
70% {
transform: translateX(-1260px);
}
75% {
transform: translateX(-1890px);
}
95% {
transform: translateX(-1890px);
}
100% {
transform: translateX(0);
}
}
</style>
</head>
<body>
<div class="container">
<div class="slide" style="background-image: url('img1.jpg')"></div>
<div class="slide" style="background-image: url('img2.jpg')"></div>
<div class="slide" style="background-image: url('img3.jpg')"></div>
<div class="slide" style="background-image: url('img4.jpg')"></div>
<div class="slide" style="background-image: url('img5.jpg')"></div>
</div>
<script>
let slides = document.querySelectorAll('.slide');
let currentSlide = 0;
let slideInterval = setInterval(nextSlide, 10000);
function nextSlide() {
slides[currentSlide].classList.remove('active');
currentSlide = (currentSlide + 1) % slides.length;
slides[currentSlide].classList.add('active');
}
</script>
</body>
</html>
```
这段代码中,我们使用了 Flexbox 布局来使图片水平居中对齐。每个图片都被包装在一个 `div` 元素中,并且设置了相同的宽度和高度。我们为每个 `div` 元素添加了一个 `slide` 类名,用于控制样式和动画。在 CSS 中,我们使用了 `animation` 属性来定义轮播动画,并通过 `@keyframes` 规则来指定每个时间点的状态。
在 JavaScript 中,我们使用 `setInterval()` 函数来定期调用 `nextSlide()` 函数,以便自动轮播图片。`nextSlide()` 函数会将当前显示的图片隐藏,然后显示下一张图片。我们使用一个计数器变量 `currentSlide` 来跟踪当前显示的图片。当计数器变量超过图片数量时,我们将其重置为 0。
请注意,这只是一个简单的示例代码,你可以根据自己的需求进行修改和优化。
阅读全文