javascript自动轮播图代码
时间: 2023-07-09 21:26:24 浏览: 94
以下是一个基本的 JavaScript 自动轮播图代码示例:
```html
<!DOCTYPE html>
<html>
<head>
<title>JavaScript 自动轮播图</title>
<style>
#slider {
width: 500px;
height: 300px;
position: relative;
overflow: hidden;
}
#slider img {
width: 500px;
height: 300px;
position: absolute;
top: 0;
left: 0;
}
#slider .btn {
position: absolute;
top: 50%;
transform: translateY(-50%);
cursor: pointer;
font-size: 30px;
color: #fff;
background-color: rgba(0, 0, 0, 0.5);
padding: 10px;
border-radius: 50%;
z-index: 1;
}
#slider .btn.prev {
left: 20px;
}
#slider .btn.next {
right: 20px;
}
</style>
</head>
<body>
<div id="slider">
<img src="image1.jpg" />
<img src="image2.jpg" />
<img src="image3.jpg" />
<div class="btn prev">‹</div>
<div class="btn next">›</div>
</div>
<script>
var slider = document.getElementById("slider");
var images = slider.getElementsByTagName("img");
var prevBtn = slider.querySelector(".btn.prev");
var nextBtn = slider.querySelector(".btn.next");
var currentImageIndex = 0;
var intervalId = null;
// 隐藏所有图片,除了第一张
for (var i = 1; i < images.length; i++) {
images[i].style.display = "none";
}
// 上一张按钮事件
prevBtn.addEventListener("click", function() {
images[currentImageIndex].style.display = "none";
currentImageIndex--;
if (currentImageIndex < 0) {
currentImageIndex = images.length - 1;
}
images[currentImageIndex].style.display = "block";
});
// 下一张按钮事件
nextBtn.addEventListener("click", function() {
images[currentImageIndex].style.display = "none";
currentImageIndex++;
if (currentImageIndex >= images.length) {
currentImageIndex = 0;
}
images[currentImageIndex].style.display = "block";
});
// 自动轮播函数
function autoSlide() {
images[currentImageIndex].style.display = "none";
currentImageIndex++;
if (currentImageIndex >= images.length) {
currentImageIndex = 0;
}
images[currentImageIndex].style.display = "block";
}
// 启动自动轮播
intervalId = setInterval(autoSlide, 3000);
// 鼠标移入时停止自动轮播,移出时重新启动
slider.addEventListener("mouseover", function() {
clearInterval(intervalId);
});
slider.addEventListener("mouseout", function() {
intervalId = setInterval(autoSlide, 3000);
});
</script>
</body>
</html>
```
这个示例中,我们在基础的轮播图代码的基础上,添加了一个自动轮播函数 `autoSlide()` 和一个计时器 `intervalId`。在页面加载完成后,启动计时器,每隔 3 秒自动切换到下一张图片。同时,为了避免用户无法控制自动轮播,我们添加鼠标移入和移出事件,当用户鼠标移入时停止自动轮播,移出时重新启动。这样就实现了一个基本的 JavaScript 自动轮播图。
阅读全文