JavaScript 图片弹框显示
function fnCreate(src) {
/* 要创建的div的classname */
var ClassName = "thumbviewbox" ;
if (src == '' ) {
return false ;
}
/* 优先创建图片,如果图片没有加载成功,回调自己 */
var img = document.createElement('img' );
img.setAttribute( 'src', src);
//显示图片的大小
var imgwd = "300px" ;
var imghg = "300px" ;
if (imgwd < 1) {
var timer = setTimeout("fnCreate('" + src + "')", 100);
return false ;
} else {
clearInterval(timer);
}
/* 清除已经弹出的窗口,防止冒泡 */
em = document.getElementsByClassName(ClassName)
for (var i = em.length - 1; i >= 0; i--) {
var p = em[i];
p.parentNode.removeChild(p);
}
/* 各项参数 */
var htmlWidth = window.innerWidth; //可见区域宽度
var htmlHeight = window.innerHeight; //可见区域高度
var divleft = 0; //将要创建的div的左边距
var divtop = 0; //将要创建的div的右边距
var closefunction = 'em=document.getElementsByClassName("' + ClassName + '");for(var i=em.length-1;i>=0;i--){var p=em[i];p.parentNode.removeChild(p);}'; //关闭div的代码
img.setAttribute( 'onclick', closefunction);
/* 计算通过图片计算div应该在的位置,保证弹窗在页面中央 */
if (imgwd > htmlWidth * 0.8) {
img.setAttribute( 'width', htmlWidth * 0.8);
divleft = htmlWidth * 0.1;
if (imghg > htmlHeight * 0.8) {
divtop = htmlHeight * 0.1;
} else {
divtop = (htmlHeight - imgwd) / 2;
}
} else {
img.setAttribute( 'width', imgwd);
divleft = (htmlWidth - imgwd) / 2;
if (imghg > htmlHeight * 0.8) {
divtop = htmlHeight * 0.1;
}
else {
divtop = (htmlHeight - imgwd) / 2;
}
}
/* 创建关闭按钮 */
var closebtn = document.createElement('a');
closebtn.setAttribute( 'class', 'close' );
closebtn.setAttribute( 'href', 'javascript:;' );
closebtn.setAttribute( 'style', 'position:absolute;top:-20px;right:-5px;cursor:pointer;background:#444;color:#FFF;' );
closebtn.innerHTML = '[close/关?闭??]';
closebtn.setAttribute( 'onclick', closefunction);
/* 创建弹窗 */
var element = document.createElement('div');
element.appendChild(img);
element.appendChild(closebtn);
element.setAttribute( 'class', ClassName);
element.setAttribute( 'style', 'border:5px solid #444;position:absolute;top:' + Math.round(divtop) + 'px;left:' + Math.round(divleft) + 'px;border-radius:5px;background:#FFF;z-index:9999;' );
document.body.appendChild(element);
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· .NET周刊【3月第1期 2025-03-02】
· [AI/GPT/综述] AI Agent的设计模式综述