<td> <input type="file" onchange="previewImage(this)" onclick="showPopup(this.src)"style="width: 100px; height: auto;" > </td> function previewImage(input) { if (input.files && input.files[0]) { var reader = new FileReader(); reader.onload = function (e) { var img = document.createElement("img"); img.src = e.target.result; img.alt = "照片"; img.onclick = showPopup; input.parentNode.appendChild(img); input.style.display = "none"; // 隐藏原始的input元素 } reader.readAsDataURL(input.files[0]); } } 我添加图片后,点击图片能够以弹窗的形式放大图片,
时间: 2024-04-11 16:27:56 浏览: 78
根据你提供的代码,我做了一些修改来实现点击图片以弹窗形式放大图片的功能。请尝试以下代码:
```html
<td>
<input type="file" onchange="previewImage(this)" onclick="showPopup(this.src)" style="width: 100px; height: auto;">
</td>
<div class="popup" style="display: none;">
<img id="popupImg" alt="照片">
</div>
<script>
function previewImage(input) {
if (input.files && input.files[0]) {
var reader = new FileReader();
reader.onload = function (e) {
var img = document.createElement("img");
img.src = e.target.result;
img.alt = "照片";
img.onclick = showPopup;
input.parentNode.appendChild(img);
input.style.display = "none"; // 隐藏原始的input元素
}
reader.readAsDataURL(input.files[0]);
}
}
function showPopup(src) {
var popup = document.querySelector(".popup");
var popupImg = document.querySelector("#popupImg");
popupImg.src = src;
popup.style.display = "flex";
}
document.querySelector(".popup").addEventListener("click", function () {
this.style.display = "none";
});
</script>
```
这段代码将点击事件添加到了图片的`onclick`属性中,并将图片的`src`传递给`showPopup`函数。在`showPopup`函数中,我们获取到了弹窗容器和弹窗中的`<img>`元素,然后将传入的图片源设置为弹窗中的图片源,并显示弹窗。
请注意,你需要在CSS中给`.popup`类设置合适的样式,以确保弹窗能够正确显示和放大图片。
阅读全文