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() { var popup = document.getElementById("popup"); var popupImg = document.getElementById("popupImg"); var scale = 1; // 设置弹出窗口中的图片 popupImg.src = this.src; popupImg.style.transform = `scale(${scale})`; // 显示弹出窗口 popup.style.display = "block"; // 添加点击事件监听器,点击其他区域时隐藏弹出窗口 popup.onclick = function () { popup.style.display = "none"; } // 添加滚轮事件监听器,实现缩放功能 popup.onwheel = function (event) { event.preventDefault(); scale += event.deltaY * -0.01; scale = Math.max(0.5, scale); // 设置最小缩放比例 scale = Math.min(3, scale); // 设置最大缩放比例 popupImg.style.transform = `scale(${scale})`; }; }当我点击图片后,需要以悬浮于当前页面的悬浮窗展示图片并且能够放大图片
时间: 2024-04-12 18:31:12 浏览: 110
要实现点击图片后以悬浮窗展示并放大图片,您可以按照以下步骤进行操作:
1. 创建一个悬浮窗元素,用于展示放大的图片。
2. 在点击图片时,将图片的信息传递给悬浮窗,并设置悬浮窗的位置和样式。
3. 添加放大功能的事件监听器,使用户能够通过滚轮放大图片。
以下是示例代码:
```javascript
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.parentNode.appendChild(img);
input.style.display = "none"; // 隐藏原始的input元素
};
reader.readAsDataURL(input.files[0]);
}
}
function showPopup(imageSrc) {
var popup = document.createElement("div");
var popupImg = document.createElement("img");
var scale = 1;
// 设置弹出窗口中的图片
popupImg.src = imageSrc;
popupImg.style.transform = `scale(${scale})`;
// 设置悬浮窗样式
popup.style.position = "fixed";
popup.style.top = "50%";
popup.style.left = "50%";
popup.style.transform = "translate(-50%, -50%)";
popup.style.backgroundColor = "white";
popup.style.padding = "20px";
popup.style.zIndex = "9999";
// 添加图片到悬浮窗
popup.appendChild(popupImg);
document.body.appendChild(popup);
// 添加点击事件监听器,点击其他区域时隐藏悬浮窗
popup.onclick = function () {
popup.style.display = "none";
};
// 添加滚轮事件监听器,实现缩放功能
popup.onwheel = function (event) {
event.preventDefault();
scale += event.deltaY * -0.01;
scale = Math.max(0.5, scale); // 设置最小缩放比例
scale = Math.min(3, scale); // 设置最大缩放比例
popupImg.style.transform = `scale(${scale})`;
};
}
```
这样,当您点击图片时,会以悬浮窗的形式展示并能够放大图片。
希望对您有所帮助!如果您有任何其他问题,请随时提问。
阅读全文