灯箱效果(Lightbox Effect)是一种网页设计技术,用于在当前页面上显示一个覆盖层,通常包含图片、视频或其他媒体内容,并且通常带有一定的透明背景,以突出显示内容并允许用户在不需要离开当前页面的情况下查看详细信息。
灯箱效果通常涉及以下几个关键点:
以下是一个简单的图片灯箱效果的实现示例:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Lightbox Example</title>
<link rel="stylesheet" href="styles.css">
</head>
<body>
<div class="gallery">
<img src="thumbnail1.jpg" alt="Image 1" class="lightbox-trigger">
<img src="thumbnail2.jpg" alt="Image 2" class="lightbox-trigger">
</div>
<div class="lightbox" id="lightbox">
<span class="close-btn">×</span>
<img src="" alt="" class="lightbox-content" id="lightbox-img">
</div>
<script src="script.js"></script>
</body>
</html>body {
font-family: Arial, sans-serif;
}
.gallery img {
width: 100px;
height: 100px;
margin: 10px;
cursor: pointer;
}
.lightbox {
display: none;
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: rgba(0, 0, 0, 0.8);
justify-content: center;
align-items: center;
}
.lightbox-content {
max-width: 90%;
max-height: 90%;
}
.close-btn {
position: absolute;
top: 10px;
right: 20px;
color: white;
font-size: 30px;
cursor: pointer;
}document.addEventListener('DOMContentLoaded', function() {
const lightboxTriggers = document.querySelectorAll('.lightbox-trigger');
const lightbox = document.getElementById('lightbox');
const lightboxImg = document.getElementById('lightbox-img');
const closeBtn = document.querySelector('.close-btn');
lightboxTriggers.forEach(trigger => {
trigger.addEventListener('click', function() {
lightboxImg.src = this.src.replace('thumbnail', 'fullsize');
lightbox.style.display = 'flex';
});
});
closeBtn.addEventListener('click', function() {
lightbox.style.display = 'none';
});
lightbox.addEventListener('click', function(event) {
if (event.target === lightbox) {
lightbox.style.display = 'none';
}
});
});通过以上步骤,你可以实现一个基本的灯箱效果,并解决常见的实现问题。