用H5写一个包含三张图片的幻灯片能左右划动的网页
时间: 2023-05-31 18:06:35 浏览: 62
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>图片幻灯片</title>
<style>
body {
margin: 0;
padding: 0;
}
#slider {
width: 100%;
height: 500px;
overflow: hidden;
position: relative;
}
#slider img {
width: 100%;
height: 500px;
position: absolute;
top: 0;
left: 0;
}
#slider .prev, #slider .next {
width: 50px;
height: 100%;
background-color: rgba(0,0,0,0.5);
position: absolute;
top: 0;
z-index: 1;
cursor: pointer;
}
#slider .prev {
left: 0;
}
#slider .next {
right: 0;
}
</style>
</head>
<body>
<div id="slider">
<img src="https://via.placeholder.com/1920x500.png?text=Image+1" alt="image 1">
<img src="https://via.placeholder.com/1920x500.png?text=Image+2" alt="image 2">
<img src="https://via.placeholder.com/1920x500.png?text=Image+3" alt="image 3">
<div class="prev"></div>
<div class="next"></div>
</div>
<script>
var slider = document.getElementById("slider");
var prev = document.querySelector(".prev");
var next = document.querySelector(".next");
var images = slider.getElementsByTagName("img");
var currentIndex = 0;
// 显示当前图片
function showImage(index) {
for (var i = 0; i < images.length; i++) {
if (i === index) {
images[i].style.display = "block";
} else {
images[i].style.display = "none";
}
}
currentIndex = index;
}
// 上一张图片
function prevImage() {
if (currentIndex === 0) {
showImage(images.length - 1);
} else {
showImage(currentIndex - 1);
}
}
// 下一张图片
function nextImage() {
if (currentIndex === images.length - 1) {
showImage(0);
} else {
showImage(currentIndex + 1);
}
}
// 点击左右按钮切换图片
prev.addEventListener("click", prevImage);
next.addEventListener("click", nextImage);
// 左右滑动切换图片
var startX = 0;
var endX = 0;
slider.addEventListener("touchstart", function(event) {
startX = event.touches[0].clientX;
});
slider.addEventListener("touchend", function(event) {
endX = event.changedTouches[0].clientX;
if (endX - startX > 50) {
prevImage();
} else if (startX - endX > 50) {
nextImage();
}
});
// 自动轮播
var timer = setInterval(function() {
nextImage();
}, 3000);
// 鼠标放在幻灯片上停止轮播,移开继续轮播
slider.addEventListener("mouseover", function() {
clearInterval(timer);
});
slider.addEventListener("mouseout", function() {
timer = setInterval(function() {
nextImage();
}, 3000);
});
// 显示第一张图片
showImage(0);
</script>
</body>
</html>