html中 为所有img标签添加点击图片预览图片功能,同时可关闭预览
时间: 2024-03-23 10:36:00 浏览: 23
需要使用JavaScript来实现这个功能,可以使用第三方库如jQuery或者自己编写代码。
以下是一个实现的示例代码:
```html
<!DOCTYPE html>
<html>
<head>
<title>图片预览</title>
<style>
/* 遮罩层样式 */
.mask {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
background-color: rgba(0,0,0,0.5);
display: none;
z-index: 999;
}
/* 图片预览框样式 */
.preview {
position: fixed;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
max-width: 90%;
max-height: 90%;
z-index: 1000;
}
.preview img {
max-width: 100%;
max-height: 100%;
}
</style>
</head>
<body>
<img src="image1.jpg">
<img src="image2.jpg">
<img src="image3.jpg">
<div class="mask">
<div class="preview">
<img src="">
</div>
</div>
<script>
// 获取所有img标签
var imgs = document.getElementsByTagName('img');
// 给每个img标签添加点击事件
for (var i = 0; i < imgs.length; i++) {
imgs[i].onclick = function() {
// 显示遮罩层
document.querySelector('.mask').style.display = 'block';
// 显示预览图片
var previewImg = document.querySelector('.preview img');
previewImg.src = this.src;
previewImg.onload = function() {
// 计算预览框的位置
var preview = document.querySelector('.preview');
preview.style.marginLeft = -preview.offsetWidth / 2 + 'px';
preview.style.marginTop = -preview.offsetHeight / 2 + 'px';
};
};
}
// 点击遮罩层或者预览框,关闭预览
document.querySelector('.mask').onclick = function() {
this.style.display = 'none';
};
document.querySelector('.preview').onclick = function(e) {
e.stopPropagation();
};
</script>
</body>
</html>
```
这段代码会为所有img标签添加点击事件,当点击图片时会显示一个遮罩层和一个预览框,预览框中显示点击的图片。点击遮罩层或者预览框,会关闭预览。