在这个基础上我放大图片后需要可以使用滚轮自由放大需要整么处理
时间: 2024-04-08 22:31:41 浏览: 57
要实现滚轮自由放大图片的功能,您可以对弹出窗口中的图片进行缩放操作。以下是对示例代码进行修改,以支持滚轮缩放的示例:
```html
<!DOCTYPE html>
<html>
<head>
<style>
/* 样式可以根据您的需求进行修改 */
.popup {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
background-color: rgba(0, 0, 0, 0.8);
display: none;
overflow: hidden;
}
.popup img {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
max-width: 100%;
max-height: 100%;
cursor: zoom-in;
}
</style>
<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() {
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.1, scale); // 设置最小缩放比例
scale = Math.min(3, scale); // 设置最大缩放比例
popupImg.style.transform = `scale(${scale})`;
};
}
</script>
</head>
<body>
<table id="myTable">
<tr>
<td>
<input type="file" onchange="previewImage(this)" style="width: 100px; height: auto;">
</td>
</tr>
</table>
<div id="popup" class="popup">
<img id="popupImg">
</div>
</body>
</html>
```
在这个示例中,我们添加了一个变量 `scale` 来存储当前的缩放比例。当滚轮事件触发时,根据滚轮的方向和移动距离调整缩放比例,并将新的缩放比例应用到图片元素的样式中。通过 `scale` 变量,我们可以在滚轮滚动时动态改变图片的大小。
请将上述示例代码添加到您的 HTML 文件中,并根据需要进行样式和效果的调整。这样,您的网页图片就可以在点击后通过滚轮自由放大了。
阅读全文