图片点击后可实现放大 缩小 旋转
<div> <img alt="" onclick="showImg(this)" src="https://realcan-prescription-test.oss-cn-qingdao.aliyuncs.com/20201209/1607494454.jpg"> <img alt="" onclick="showImg(this)" src="https://realcan-prescription-test.oss-cn-qingdao.aliyuncs.com/20201209/1607494460.jpg"> </div> <script src="jquery-1.9.1.min.js"></script> <!--放大图片start--> <style> .mask-layer { position: fixed; width: 100%; height: 100%; top: 0; left: 0; z-index: 2020; -webkit-box-sizing: border-box; -moz-box-sizing: border-box; box-sizing: border-box; -webkit-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none; } .mask-layer > div { -webkit-box-sizing: border-box; -moz-box-sizing: border-box; box-sizing: border-box; } .mask-layer-black { width: 100%; height: 100%; background: #000; opacity: .85; position: absolute; top: 0; left: 0; } .mask-layer-container { width: 80%; height: 90%; background: #fff; position: absolute; margin: 0 auto; z-index: 2030; padding: 0 10px; border-radius: 10px; position: absolute; top: 50%; left: 50%; -webkit-transform: translate(-50%, -50%); -moz-transform: translate(-50%, -50%); -ms-transform: translate(-50%, -50%); -o-transform: translate(-50%, -50%); transform: translate(-50%, -50%); } .mask-layer-container-operate { width: 100%; padding: 10px 0; text-align: center; border-bottom: solid 1px #ddd; } .mask-layer-imgbox { width: 100%; height: 90%; overflow: hidden; position: relative; margin-top: 10px; } .mask-layer-imgbox > p { position: absolute; cursor: move; transform-origin: center; width: 100%; height: 100%; padding: 0; -webkit-margin-before: 0; -webkit-margin-after: 0; cursor: move; left: 0; top: 0; } .mask-layer-imgboxp > p > img { display: inline-block; vertical-align: middle; cursor: move; } /*按钮样式*/ .btn-default-styles { display: inline-block; padding: 5px 10px; margin-bottom: 0; font-size: 14px; font-weight: 400; line-height: 1.42857143; text-align: center; white-space: nowrap; vertical-align: middle; -ms-touch-action: manipulation; touch-action: manipulation; cursor: pointer; -webkit-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none; background-image: none; background: #8C85E6; color: #fff; border: solid 1px #8C85E6; border-radius: 4px; } .btn-default-styles:focus { outline: none; } .btn-default-styles:hover { background: #8078e3; animation: anniu 1s infinite; } .btn-default-styles:active { box-shadow: 0 2px 3px rgba(0, 0, 0, .2) inset; } .prescription-content .greencon .form-control{color:green;} </style> <script> function showImg(ele) { var img_path = $(ele).attr("src"); //给body添加弹出层的html $("body").append("<div class=\"mask-layer\">" + " <div class=\"mask-layer-black\"></div>" + " <div class=\"mask-layer-container\">" + " <div class=\"mask-layer-container-operate\">" + " <button class=\"mask-out btn-default-styles\">放大</button>" + " <button class=\"mask-in btn-default-styles\">缩小</button>" + " <button class=\"mask-clockwise btn-default-styles\">顺旋转</button>" + " <button class=\"mask-counterclockwise btn-default-styles\">逆旋转</button>" + " <button class=\"mask-close btn-default-styles\">关闭</button>" + " </div>" + " <div class=\"mask-layer-imgbox auto-img-center\"></div>" + " </div>" + "</div>" ); $(".mask-layer-imgbox").append("<p><img src=\"\" alt=\"\"></p>"); $(".mask-layer-imgbox img").prop("src", img_path); //给弹出框的Img赋值 //图片居中显示 var box_width = $(".auto-img-center").width(); //图片盒子宽度 var box_height = $(".auto-img-center").height();//图片高度高度 var initial_width = $(".auto-img-center img").width();//初始图片宽度 var initial_height = $(".auto-img-center img").height();//初始图片高度 if (initial_width > initial_height) { $(".auto-img-center img").css("width", box_width); var last_imgHeight = $(".auto-img-center img").height(); $(".auto-img-center img").css("margin-top", -(last_imgHeight - box_height) / 2); } else { $(".auto-img-center img").css("height", box_height); var last_imgWidth = $(".auto-img-center img").width(); $(".auto-img-center img").css("margin-left", -(last_imgWidth - box_width) / 2); } //图片拖拽 var $div_img = $(".mask-layer-imgbox p"); //绑定鼠标左键按住事件 $div_img.bind("mousedown", function (event) { event.preventDefault && event.preventDefault(); //去掉图片拖动响应 //获取需要拖动节点的坐标 var offset_x = $(this)[0].offsetLeft;//x坐标 var offset_y = $(this)[0].offsetTop;//y坐标 //获取当前鼠标的坐标 var mouse_x = event.pageX; var mouse_y = event.pageY; //绑定拖动事件 //由于拖动时,可能鼠标会移出元素,所以应该使用全局(document)元素 $(".mask-layer-imgbox").bind("mousemove", function (ev) { // 计算鼠标移动了的位置 var _x = ev.pageX - mouse_x; var _y = ev.pageY - mouse_y; //设置移动后的元素坐标 var now_x = (offset_x + _x ) + "px"; var now_y = (offset_y + _y ) + "px"; //改变目标元素的位置 $div_img.css({ top: now_y, left: now_x }); }); }); //当鼠标左键松开,接触事件绑定 $(".mask-layer-imgbox").bind("mouseup", function () { $(this).unbind("mousemove"); }); //缩放 var zoom_n = 1; $(".mask-out").click(function () { zoom_n += 0.1; $(".mask-layer-imgbox img").css({ "transform": "scale(" + zoom_n + ")", "-moz-transform": "scale(" + zoom_n + ")", "-ms-transform": "scale(" + zoom_n + ")", "-o-transform": "scale(" + zoom_n + ")", "-webkit-": "scale(" + zoom_n + ")" }); }); $(".mask-in").click(function () { zoom_n -= 0.1; console.log(zoom_n) if (zoom_n <= 0.1) { zoom_n = 0.1; $(".mask-layer-imgbox img").css({ "transform":"scale(.1)", "-moz-transform":"scale(.1)", "-ms-transform":"scale(.1)", "-o-transform":"scale(.1)", "-webkit-transform":"scale(.1)" }); } else { $(".mask-layer-imgbox img").css({ "transform": "scale(" + zoom_n + ")", "-moz-transform": "scale(" + zoom_n + ")", "-ms-transform": "scale(" + zoom_n + ")", "-o-transform": "scale(" + zoom_n + ")", "-webkit-transform": "scale(" + zoom_n + ")" }); } }); //旋转 var spin_n = 0; $(".mask-clockwise").click(function () { spin_n += 15; $(".mask-layer-imgbox img").parent("p").css({ "transform":"rotate("+ spin_n +"deg)", "-moz-transform":"rotate("+ spin_n +"deg)", "-ms-transform":"rotate("+ spin_n +"deg)", "-o-transform":"rotate("+ spin_n +"deg)", "-webkit-transform":"rotate("+ spin_n +"deg)" }); }); $(".mask-counterclockwise").click(function () { spin_n -= 15; $(".mask-layer-imgbox img").parent("p").css({ "transform":"rotate("+ spin_n +"deg)", "-moz-transform":"rotate("+ spin_n +"deg)", "-ms-transform":"rotate("+ spin_n +"deg)", "-o-transform":"rotate("+ spin_n +"deg)", "-webkit-transform":"rotate("+ spin_n +"deg)" }); }); //关闭 $(".mask-close").click(function () { $(".mask-layer").remove(); }); $(".mask-layer-black").click(function () { $(".mask-layer").remove(); }); } </script> <!--放大图片end-->
原样式:
点击图片后样式:可再放大 缩小 旋转
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧