From 28a19584dca02f05fe0b8be9ab426b586efead6e Mon Sep 17 00:00:00 2001 From: mitao <2763622819@qq.com> Date: 星期一, 22 四月 2024 09:33:10 +0800 Subject: [PATCH] 营销员管理-身份证图片放大 --- meiya-admin/src/main/webapp/static/js/common/Feng.js | 99 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 99 insertions(+), 0 deletions(-) diff --git a/meiya-admin/src/main/webapp/static/js/common/Feng.js b/meiya-admin/src/main/webapp/static/js/common/Feng.js index dcf03c8..ce12f8d 100644 --- a/meiya-admin/src/main/webapp/static/js/common/Feng.js +++ b/meiya-admin/src/main/webapp/static/js/common/Feng.js @@ -321,6 +321,105 @@ content: '<img src="' + $(image).attr("src") + '" height="100%" width="100%" />' }); }, + lookBigImg: function (obj) { + console.log("进入") + console.log(obj) + // 设置图片路径 + var imgUrl = obj; + if (imgUrl != "") { + imgUrl = imgUrl;// 设置图片路径 + } else { + imgUrl = Feng.ctxPath + '/static/img/NoPIC.png';// 默认无图 + } + layer.open({ + type: 1, + title: false, + closeBtn: 0, + area: ['80%', '100%'], + skin: 'layui-layer-nobg', //没有背景色 + shadeClose: true, //点击空白区域关闭弹出层 + content: '<div id="zoomableImageContainer" style="height: 100%; width: 100%; overflow: hidden; display: flex; justify-content: center; align-items: center; position: relative;"><img id="zoomableImage" src="' + + imgUrl + + '" style="max-width: none; max-height: none; position: absolute;"></div>', + success: function (layero, index) { + // 获取图片容器和图片元素 + var zoomableImageContainer = document.getElementById( + 'zoomableImageContainer'); + var zoomableImage = document.getElementById('zoomableImage'); + var imageWidth = zoomableImage.naturalWidth; + var imageHeight = zoomableImage.naturalHeight; + var containerWidth = zoomableImageContainer.offsetWidth; + var containerHeight = zoomableImageContainer.offsetHeight; + var isDragging = false; // 标记是否正在拖动 + var startX, startY; // 记录拖动起始位置 + zoomableImageContainer.addEventListener('wheel', + function (event) { + event.preventDefault(); + var delta = Math.sign(-event.deltaY); // 获取滚动方向,1表示向上滚动,-1表示向下滚动 + var currentWidth = zoomableImage.offsetWidth; + var currentHeight = zoomableImage.offsetHeight; + var step = 0.1; // 缩放步长 + var newWidth = currentWidth + delta * step + * currentWidth; + var aspectRatio = zoomableImage.naturalWidth + / zoomableImage.naturalHeight; + var newHeight = newWidth / aspectRatio; + zoomableImage.style.width = newWidth + 'px'; + zoomableImage.style.height = newHeight + 'px'; + }); + zoomableImageContainer.addEventListener('mousedown', + function (event) { + if (event.button === 0) { // 判断是否为鼠标左键点击 + event.preventDefault(); + isDragging = true; + startX = event.clientX - zoomableImage.offsetLeft; + startY = event.clientY - zoomableImage.offsetTop; + } + }); + zoomableImageContainer.addEventListener('mousemove', + function (event) { + if (isDragging) { + event.preventDefault(); + var offsetX = event.clientX - startX; + var offsetY = event.clientY - startY; + var maxX = zoomableImage.offsetWidth + - containerWidth; + var maxY = zoomableImage.offsetHeight + - containerHeight; + offsetX = Math.min(Math.max(offsetX, -maxX), 0); + offsetY = Math.min(Math.max(offsetY, -maxY), 0); + zoomableImage.style.left = offsetX + 'px'; + zoomableImage.style.top = offsetY + 'px'; + } + }); + zoomableImageContainer.addEventListener('mousemove', + function (event) { + if (isDragging) { + var mouseX = event.clientX; + var mouseY = event.clientY; + var newLeft = mouseX - startX; + var newTop = mouseY - startY; + // 确保图片不会移出容器范围 + if (newLeft >= 0 && newLeft + + zoomableImage.offsetWidth <= containerWidth) { + zoomableImage.style.left = newLeft + 'px'; + } + if (newTop >= 0 && newTop + + zoomableImage.offsetHeight + <= containerHeight) { + zoomableImage.style.top = newTop + 'px'; + } + } + }); + zoomableImageContainer.addEventListener('mouseup', + function (event) { + if (event.button === 0) { + isDragging = false; + } + }); + } + }); + }, /** * 单选框-取值 */ -- Gitblit v1.7.1