html实现单击图片切换
时间: 2023-12-23 17:25:46 浏览: 102
以下是使用HTML和JavaScript实现单击图片切换的示例代码:
```html
<!DOCTYPE html>
<html>
<head>
<title>Image Gallery</title>
<style>
/* 灯箱样式 */
.lightbox {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
background-color: rgba(0,0,0,0.6);
display: none;
justify-content: center;
align-items: center;
}
.lightbox img {
max-width: 80%;
max-height: 80%;
}
.lightbox .prev, .lightbox .next {
position: absolute;
top: 50%;
transform: translateY(-50%);
font-size: 3em;
color: #fff;
cursor: pointer;
}
.lightbox .prev {
left: 20px;
}
.lightbox .next {
right: 20px;
}
</style>
</head>
<body>
<!-- 图片列表 -->
<div class="gallery">
<img src="image1.jpg" alt="Image 1" onclick="openLightbox(this)">
<img src="image2.jpg" alt="Image 2" onclick="openLightbox(this)">
<img src="image3.jpg" alt="Image 3" onclick="openLightbox(this)">
<img src="image4.jpg" alt="Image 4" onclick="openLightbox(this)">
</div>
<!-- 灯箱 -->
<div class="lightbox">
<img src="" alt="Lightbox Image">
<div class="prev" onclick="prevImage()"><</div>
<div class="next" onclick="nextImage()">></div>
</div>
<script>
// 获取图片列表和灯箱元素
var gallery = document.querySelector('.gallery');
var lightbox = document.querySelector('.lightbox');
var lightboxImage = lightbox.querySelector('img');
var prevButton = lightbox.querySelector('.prev');
var nextButton = lightbox.querySelector('.next');
// 获取所有图片元素
var images = gallery.querySelectorAll('img');
// 当前显示的图片索引
var currentIndex = 0;
// 打开灯箱
function openLightbox(image) {
// 设置灯箱图片
lightboxImage.src = image.src;
// 显示灯箱
lightbox.style.display = 'flex';
// 获取当前图片索引
currentIndex = Array.prototype.indexOf.call(images, image);
}
// 关闭灯箱
function closeLightbox() {
// 隐藏灯箱
lightbox.style.display = 'none';
}
// 切换到上一张图片
function prevImage() {
currentIndex--;
if (currentIndex < 0) {
currentIndex = images.length - 1;
}
lightboxImage.src = images[currentIndex].src;
}
// 切换到下一张图片
function nextImage() {
currentIndex++;
if (currentIndex >= images.length) {
currentIndex = 0;
}
lightboxImage.src = images[currentIndex].src;
}
// 点击灯箱以外的区域关闭灯箱
lightbox.addEventListener('click', function(event) {
if (event.target === this) {
closeLightbox();
}
});
// 监听键盘事件
document.addEventListener('keydown', function(event) {
if (event.key === 'Escape') {
closeLightbox();
} else if (event.key === 'ArrowLeft') {
prevImage();
} else if (event.key === 'ArrowRight') {
nextImage();
}
});
</script>
</body>
</html>
```
该示例代码中,我们使用了HTML和CSS来创建灯箱的样式,使用JavaScript来实现图片的切换。当用户单击图片时,我们会打开灯箱并显示当前图片。在灯箱中,我们还添加了上下切换按钮和键盘事件监听器,以便用户可以通过多种方式切换图片。
阅读全文