layer.open 预览图片
先上效果图:
HTML:
<img src="http://127.0.0.1/img/test.jpg" onclick="scanImg(this)" />
第一种:非动态赋值图片信息的, 只需要创建图片对象获取到实际宽高。或者重新固定图片宽高即可。
function scanImg(obj){ let realpath = obj.src; // url地址 let imgHtml = "<img src='"+ realpath +"' />"; let img = new Image(); //Image对象 img.src = realpath; let width = img.width, height = img.height; layer.open({ type:1, // 类型是1 shade:0.2, offset:'auto', area:[width + 'px', height + 'px'], shadeClose:true, scrollbar: false, title: '', // 这里不要写文字 content:imgHtml, }); }
第二种:动态赋值的,可能会遇到第一次点击预览图片,无法获取到图片宽高等信息的情况,所以要用 img.onload 等图片加载完
function scanImg(obj){ let realpath = obj.src; // url地址 let imgHtml = "<img src='"+ realpath +"' />"; let img = new Image(); // Image对象 img.onload = function () { // 重点:要用onload加载 let width = img.width, height = img.height; layer.open({ type:1, // 类型是1 shade:0.2, offset:'auto', area:[width + 'px', height + 'px'], shadeClose:true, scrollbar: false, title: '', // 这里不要写文字 content:imgHtml, }); }; img.src = realpath; }
另外,如果用 $(this).src 获取的图片信息都是第一次的, 不妨用 attr 这个 $(this).attr('src') 试试获取!!
你的坚持 ------ 终将美好 ~
分类:
js
, layui 前端框架
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 字符编码:从基础到乱码解决
· 提示词工程——AI应用必不可少的技术
2018-01-22 css样式 -- 表格不会因为字体过长导致字体溢出的问题