js写一个没有左右按钮,但是有小圆点的无缝轮播
时间: 2024-03-10 20:45:55 浏览: 66
js实现无缝轮播图特效
以下是一个简单的没有左右按钮但有小圆点的 QQ飞车官网无缝轮播的示例,使用了 JavaScript 和 CSS 实现:
HTML:
```
<div class="slider">
<div class="slides">
<div class="slide">
<img src="slide1.jpg" alt="slide1">
</div>
<div class="slide">
<img src="slide2.jpg" alt="slide2">
</div>
<div class="slide">
<img src="slide3.jpg" alt="slide3">
</div>
<div class="slide">
<img src="slide4.jpg" alt="slide4">
</div>
</div>
<div class="dots">
<span class="dot active"></span>
<span class="dot"></span>
<span class="dot"></span>
<span class="dot"></span>
</div>
</div>
```
CSS:
```
.slider {
width: 100%;
height: 500px;
position: relative;
overflow: hidden;
}
.slides {
width: 400%;
height: 100%;
display: flex;
}
.slide {
width: 25%;
height: 100%;
}
.slide img {
width: 100%;
height: 100%;
object-fit: cover;
}
.dots {
position: absolute;
bottom: 20px;
left: 50%;
transform: translateX(-50%);
display: flex;
}
.dot {
width: 15px;
height: 15px;
border-radius: 50%;
background-color: #ccc;
margin-right: 10px;
cursor: pointer;
}
.dot.active {
background-color: #fff;
}
```
JavaScript:
```
const slides = document.querySelectorAll('.slide');
const dots = document.querySelectorAll('.dot');
const slideWidth = slides[0].clientWidth;
let currentSlide = 0;
let slideInterval;
const nextSlide = () => {
currentSlide = currentSlide < slides.length - 1 ? currentSlide + 1 : 0;
updateSlide();
}
const updateSlide = () => {
document.querySelector('.slides').style.transform = `translateX(-${currentSlide * slideWidth}px)`;
dots.forEach((dot, index) => {
dot.classList.remove('active');
if(index === currentSlide) {
dot.classList.add('active');
}
});
}
dots.forEach((dot, index) => {
dot.addEventListener('click', () => {
currentSlide = index;
updateSlide();
});
});
slideInterval = setInterval(nextSlide, 5000);
```
在上面的代码中,我们首先为每个轮播图创建了一个包含图片的 `div` 元素,并使用 CSS 中的 `flex` 属性将它们放在一个水平线上。然后,我们创建了一个小圆点的容器,并为每个轮播图创建了一个对应的圆点。
接下来,我们使用 JavaScript 创建了一个定时器,以便每隔一段时间就切换到下一个轮播图。我们还创建了一个更新轮播图和圆点状态的函数,并在点击圆点时更新当前轮播图。
最后,我们将轮播图的 `translateX` 属性设置为当前轮播图的位置,以便在滚动时平移轮播图。
阅读全文