返回
惊艳 CSS,纯CSS 创作的轮播图
前端
2023-11-19 18:37:17
纯 CSS 实现轮播图
纯 CSS 实现轮播图,是利用 CSS 的动画和过渡效果,无需使用 JavaScript,即可实现图片或内容的切换效果。以下是实现步骤:
1. 创建 HTML 结构
<div class="slider">
<div class="slides">
<img src="image1.jpg" alt="Image 1">
<img src="image2.jpg" alt="Image 2">
<img src="image3.jpg" alt="Image 3">
</div>
<div class="controls">
<button class="prev-btn">Previous</button>
<button class="next-btn">Next</button>
</div>
</div>
2. 添加 CSS 样式
.slider {
width: 100%;
height: 400px;
overflow: hidden;
}
.slides {
display: flex;
width: calc(100% * 3);
animation: slide 15s infinite;
}
.slides img {
width: 100%;
height: 100%;
}
@keyframes slide {
0% {
margin-left: 0;
}
33% {
margin-left: -100%;
}
66% {
margin-left: -200%;
}
100% {
margin-left: 0;
}
}
.controls {
position: absolute;
bottom: 20px;
left: 50%;
transform: translate(-50%, -50%);
}
.prev-btn, .next-btn {
padding: 10px;
background: #fff;
border: 1px solid #ccc;
cursor: pointer;
}
3. 添加 JavaScript
const slider = document.querySelector('.slider');
const slides = document.querySelector('.slides');
const prevBtn = document.querySelector('.prev-btn');
const nextBtn = document.querySelector('.next-btn');
let currentSlide = 0;
prevBtn.addEventListener('click', () => {
currentSlide--;
if (currentSlide < 0) {
currentSlide = slides.children.length - 1;
}
slides.style.marginLeft = `-${currentSlide * 100}%`;
});
nextBtn.addEventListener('click', () => {
currentSlide++;
if (currentSlide >= slides.children.length) {
currentSlide = 0;
}
slides.style.marginLeft = `-${currentSlide * 100}%`;
});
以上就是实现纯 CSS 轮播图的步骤,希望对大家有所帮助。