以下是一个使用CSS3实现简单轮播图的示例代码:
HTML:
<div class="slider">
<div class="slides">
<div class="slide" style="background: url('image1.jpg') no-repeat center center; background-size: cover;"></div>
<div class="slide" style="background: url('image2.jpg') no-repeat center center; background-size: cover;"></div>
<div class="slide" style="background: url('image3.jpg') no-repeat center center; background-size: cover;"></div>
</div>
<div class="navigation">
<span class="nav-button active" data-index="0"></span>
<span class="nav-button" data-index="1"></span>
<span class="nav-button" data-index="2"></span>
</div>
</div>
CSS:
.slider {
position: relative;
overflow: hidden;
width: 600px;
height: 300px;
}
.slides {
width: 300%;
height: 100%;
display: flex;
animation: slide 9s infinite;
}
.slide {
width: 100%;
flex: 1 0 auto;
display: flex;
align-items: center;
justify-content: center;
text-align: center;
}
.navigation {
position: absolute;
bottom: 10px;
left: 50%;
transform: translateX(-50%);
}
.nav-button {
display: inline-block;
width: 10px;
height: 10px;
border-radius: 50%;
margin: 0 5px;
cursor: pointer;
background-color: #333;
opacity: 0.4;
transition: opacity 0.3s;
}
.nav-button.active {
opacity: 1;
}
@keyframes slide {
0% {
transform: translateX(0);
}
11.1%, 33.3% {
transform: translateX(0);
}
44.4%, 66.6% {
transform: translateX(-100%);
}
77.7%, 100% {
transform: translateX(-200%);
}
}
JavaScript (用于导航按钮和轮播逻辑):
document.querySelectorAll('.nav-button').forEach((button, index) => {
button.addEventListener('click', function() {
const activeIndex = document.querySelector('.nav-button.active').dataset.index;
const diff = index - activeIndex;
const slides = document.querySelector('.slides');
const currentTranslateX = Number(window.getComputedStyle(slides).transform.split('(')[1].split('px')[0]);
const newTranslateX = currentTranslateX - diff * 100;
slides.style.transform = `translateX(${newTranslateX}%)`;
document.querySelectorAll('.nav-button').forEach(button => button.classList.remove('active'));
this.classList.add('active');
});
});
这个示例使用了flex
布局来简化轮播图的创建,并使用CSS动画@keyframes slide
来控制图片的切换。JavaScript代码用于处理点击导航按钮时的逻辑,包括更新导航按钮的状态和更改轮播图的位置。这个简单的实现没有包括任