为我编写一个html+css的高级轮播图
时间: 2023-06-27 12:04:52 浏览: 56
以下是一个简单的 HTML + CSS 高级轮播图示例:
HTML 代码:
```
<div class="slider-container">
<div class="slider">
<div class="slide slide1"></div>
<div class="slide slide2"></div>
<div class="slide slide3"></div>
</div>
<div class="slider-nav">
<div class="nav-item nav1"></div>
<div class="nav-item nav2"></div>
<div class="nav-item nav3"></div>
</div>
</div>
```
CSS 代码:
```
.slider-container {
position: relative;
width: 600px;
height: 400px;
overflow: hidden;
}
.slider {
position: absolute;
top: 0;
left: 0;
width: 300%;
height: 100%;
display: flex;
transition: all 0.5s ease;
}
.slide {
width: 33.333%;
height: 100%;
background-size: cover;
background-position: center;
}
.slide1 {
background-image: url('slide1.jpg');
}
.slide2 {
background-image: url('slide2.jpg');
}
.slide3 {
background-image: url('slide3.jpg');
}
.slider-nav {
position: absolute;
bottom: 20px;
left: 50%;
transform: translateX(-50%);
display: flex;
}
.nav-item {
width: 10px;
height: 10px;
border-radius: 50%;
margin-right: 10px;
background-color: #ccc;
cursor: pointer;
transition: all 0.5s ease;
}
.nav-item.active {
background-color: #fff;
}
```
JavaScript 代码:
```
var slider = document.querySelector('.slider');
var slides = document.querySelectorAll('.slide');
var navItems = document.querySelectorAll('.nav-item');
var currentSlide = 0;
var slideInterval = setInterval(nextSlide, 5000);
function nextSlide() {
slider.style.transform = 'translateX(-' + (currentSlide + 1) * 33.333 + '%)';
navItems[currentSlide].classList.remove('active');
currentSlide++;
if (currentSlide >= slides.length) {
currentSlide = 0;
}
navItems[currentSlide].classList.add('active');
}
for (var i = 0; i < navItems.length; i++) {
navItems[i].addEventListener('click', function() {
clearInterval(slideInterval);
slider.style.transform = 'translateX(-' + (this.dataset.index * 33.333) + '%)';
navItems[currentSlide].classList.remove('active');
currentSlide = this.dataset.index;
navItems[currentSlide].classList.add('active');
slideInterval = setInterval(nextSlide, 5000);
});
}
```
注意:以上代码仅为示例,实际应用中可能需要根据具体需求进行修改和优化。