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 07:30:04 浏览: 75
预览图片功能
要解决这个问题,您可以尝试在图片放大后将页面滚动条重置到左上角。您可以按照以下步骤进行操作:
1. 在`showPopup`函数中,在设置弹出窗口显示之前记录当前页面的滚动条位置。
2. 在显示弹出窗口后,将页面的滚动条重置到左上角。
以下是示例代码:
```javascript
function showPopup() {
var popup = document.getElementById("popup");
var popupImg = document.getElementById("popupImg");
var scale = 1;
// 记录当前页面滚动条的位置
var scrollLeft = window.pageXOffset || document.documentElement.scrollLeft;
var scrollTop = window.pageYOffset || document.documentElement.scrollTop;
// 设置弹出窗口中的图片
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})`;
};
// 将页面滚动条重置到左上角
window.scrollTo(scrollLeft, scrollTop);
}
```
请注意,这只是一种解决方案,并且可能需要根据您的具体网页布局和需求进行调整。希望对您有所帮助!如果您有任何其他问题,请随时提问。
阅读全文