顺序调整后无法添加图片
时间: 2023-12-12 15:04:16 浏览: 65
图像顺序加载
非常抱歉给您带来困扰。在调整顺序之后,可能会出现问题,因为在`showPopup`函数中,我们需要先将悬浮窗元素`popup`添加到页面中,然后再将图片元素`img`添加到悬浮窗中。
下面是修改后的代码示例:
```javascript
function showPopup(src) {
var popup = document.createElement("div");
popup.style.position = "fixed";
popup.style.top = "50%";
popup.style.left = "50%";
popup.style.transform = "translate(-50%, -50%)";
popup.style.backgroundColor = "rgba(0, 0, 0, 0.8)";
popup.style.zIndex = "9999";
popup.style.width = "75%"; // 设置悬浮窗宽度为页面宽度的75%
popup.style.height = "75%"; // 设置悬浮窗高度为页面高度的75%
var img = document.createElement("img");
img.src = src;
img.alt = "放大照片";
img.style.maxWidth = "100%";
img.style.maxHeight = "100%";
var scale = 1; // 初始缩放比例
var scaleFactor = 0.1; // 每次滚动的缩放因子
// 鼠标滚轮事件
img.onwheel = function (e) {
e.preventDefault(); // 阻止默认滚轮行为处理页面滚动
scale += e.deltaY > 0 ? -scaleFactor : scaleFactor; // 根据滚轮滚动方向确定缩放比例
scale = Math.max(scale, 0.1); // 最小缩放比例为0.1
img.style.transform = `scale(${scale})`;
};
// 关闭悬浮窗
popup.onclick = function () {
document.body.removeChild(popup);
};
popup.appendChild(img);
document.body.appendChild(popup);
}
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 = function () {
showPopup(img.src); // 点击图片放大时显示悬浮窗
};
// 隐藏原始的input元素
input.style.display = "none";
// 添加图片到input元素的父节点
input.parentNode.appendChild(img);
};
reader.readAsDataURL(input.files[0]);
}
}
```
在上述修改后的代码中,我们将`showPopup`函数中的顺序调整回来,先将图片元素`img`添加到悬浮窗元素`popup`中,然后再将`popup`添加到页面中。这样,在点击放大图片时,悬浮窗将正常显示。
同时,`previewImage`函数用于预览并添加图片,没有进行任何修改。
希望这次修改能够解决您的问题!如果还有其他疑问,请随时告诉我。
阅读全文