灯箱效果(Lightbox Effect)是一种常见的网页设计技巧,用于在用户点击某个元素时,显示一个覆盖整个页面的半透明背景,并在其中展示大图或其他内容。以下是实现灯箱效果的基础概念、优势、类型、应用场景以及具体的实现方法。
灯箱效果通常包括以下几个部分:
以下是一个简单的JavaScript实现灯箱效果的示例:
<!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" data-src="fullsize1.jpg">
<img src="thumbnail2.jpg" alt="Image 2" class="lightbox-trigger" data-src="fullsize2.jpg">
</div>
<div id="lightbox" class="lightbox">
<span class="close-btn">×</span>
<img id="lightbox-img" src="" alt="Fullsize Image">
</div>
<script src="script.js"></script>
</body>
</html>/* styles.css */
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 img {
max-width: 90%;
max-height: 90%;
}
.close-btn {
position: absolute;
top: 10px;
right: 20px;
color: white;
font-size: 30px;
cursor: pointer;
}// script.js
document.addEventListener('DOMContentLoaded', function() {
const triggers = document.querySelectorAll('.lightbox-trigger');
const lightbox = document.getElementById('lightbox');
const lightboxImg = document.getElementById('lightbox-img');
const closeBtn = document.querySelector('.close-btn');
triggers.forEach(trigger => {
trigger.addEventListener('click', function() {
const src = this.getAttribute('data-src');
lightboxImg.src = src;
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';
}
});
});通过这种方式,你可以轻松实现一个基本的灯箱效果。如果需要更复杂的功能,可以考虑使用现有的JavaScript库,如Lightbox2或Fancybox。
没有搜到相关的沙龙