用css写个图片自动切换代码
时间: 2023-06-18 20:07:42 浏览: 108
JavaScript实现自动切换图片代码
5星 · 资源好评率100%
以下是一个使用 CSS 实现图片自动切换的代码示例:
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">
</div>
```
CSS 代码:
```css
.slider {
position: relative;
width: 100%;
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:first-child {
opacity: 1;
}
.slider img.active {
opacity: 1;
}
@keyframes slide {
0% { transform: translateX(0); }
100% { transform: translateX(-100%); }
}
.slider img:not(:first-child) {
animation: slide 5s infinite;
animation-delay: 1s;
}
.slider img.active + img {
animation: slide 5s infinite;
}
.slider:hover img {
animation-play-state: paused;
}
```
解释:
- `.slider` 是包含图片的容器,使用 `position: relative` 来允许子元素使用 `position: absolute` 定位。
- `.slider img` 是需要轮播的图片元素,使用 `position: absolute` 定位在容器的左上角,并设置 `opacity: 0` 以隐藏它们。
- `.slider img:first-child` 是第一张图片,设置 `opacity: 1` 以显示它。
- `.slider img.active` 是当前显示的图片,也是轮播动画要应用到的图片,设置 `opacity: 1`。
- `@keyframes slide` 是定义轮播动画的关键帧,从 `translateX(0)`(不移动)到 `translateX(-100%)`(向左移动 100% 宽度)。
- `.slider img:not(:first-child)` 是除了第一张图片外的所有图片,应用轮播动画,循环播放 5 秒,延迟 1 秒开始。
- `.slider img.active + img` 是当前显示图片的下一张图片,应用轮播动画,循环播放 5 秒。
- `.slider:hover img` 是当鼠标悬停在容器上时暂停动画,使用 `animation-play-state: paused`。
这个实现使用了 CSS 的动画和过渡效果,因此不需要使用 JavaScript。
阅读全文