JavaScript 封装 Div 实现可拖动弹窗窗口
作者:拾光时间:2026-10-25 00:48:36浏览:328
本文介绍如何使用 JavaScript 封装一个可拖动的 Div 弹窗组件。通过构造函数初始化窗口参数,实现拖拽、关闭及遮罩效果,并提供具体的调用示例和完整代码下载。

Div 弹窗效果展示
图1展示了单个 Div 弹窗的效果。

构造函数定义
图2演示了同时弹出多个窗口的情形。接下来定义构造函数。
具体实现代码如下:
var DivWindow= function(popup/*最外层div id*/,popup_drag/*拖动div id*/,popup_exit/*退出按钮id*/ ,exitButton/*触发服务器端退出按钮id*/,varwidth,varheight,zindex){
this.popup =popup ;
this.height =varheight ; //窗口高度,并没用来设置窗口高度宽度,用来定位在屏幕的位置
this.width =varwidth ; //窗口宽度
this.popup_exit=popup_exit;
this.exitButton=exitButton;
this.zindex=zindex;
this.init = function(){ //初始化窗口
this.popupShow();
this.startDrag(); //设置拖动
this.setCommond(); //设置关闭
DivWindow.ArrayW.push(document.getElementById(this.popup)); //存储窗口到数组
};this.init();
}; 调用示例
调用示例如下:
具体 HTML 调用代码为:
<input type="button" id="show" onclick="javascript:new DivWindow('popup','popup_drag','popup_exit','exitButton','500','700',4);" value='触发弹出详细基本资料DIV' /> 部分实现细节可能显得特殊,这是基于特定需求的设计,后续计划优化遮罩效果。更详细的代码请参考下载链接。
完整代码
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>窗口类 </title> <meta http-equiv="Content-Type" content="text/html;charset=gb2312" /> <style type="text/css"> .mask{position: absolute; top: 0px; left: 0px; filter: alpha(opacity=50); -moz-opacity:0.5; opacity:0.5; background-color: #ffffff; z-index: 2; display: none;} /* 弹出基本资料div */ div.sample_popup {height:auto; border: 1px solid #327eca; width: 300px; } div.menu_form_header{ background: url('../images/baseInfo/titleBG.gif') repeat-x; } div.sample_popup div.menu_form_header { border-bottom: 0px; cursor: default; width:100%; height: 22px; line-height: 22px; vertical-align: middle; text-decoration: none; font-family: "Times New Roman", Serif; font-weight: 800; font-size: 13px; color: #206040; } div.menu_form_body { width:100%; height:150px; font-size:12px; background-color:#f1f8fe; } div.sample_popup input.menu_form_exit { float: right; margin: 4px 5px 0px 0px; cursor: pointer; } /*end: 弹出商品信息div */ </style> </head> <body> <div>sffs <input type="button" id="show" onclick="javascript:new DivWindow('popup','popup_drag','popup_exit','exitButton','500','700',4);" value='触发弹出详细基本资料DIV' /> <input type="button" id="exitButton" value="aaaa" /> </div> <!-- 遮罩层 --> <div id="mask" class="mask"> </div> <!-- 弹出基本资料详细DIV层 --> <div class="sample_popup" id="popup" style="visibility: hidden; display: none;"> <div class="menu_form_header" id="popup_drag"> <input type="button" id="popup_exit" value="退出" /> 片区资料 </div> <div class="menu_form_body" > <div id="popDetail"> 片区名称:<input type="button" id="Button1" onclick="javascript:new DivWindow('Div1','Div2','exit2','exitButton','500','700',5);" value='触发弹出详细基本资料DIV2' /> </div> </div> </div> <!-- 弹出基本资料详细DIV层 --> <div class="sample_popup" id="Div1" style="visibility: hidden; display: none;"> <div class="menu_form_header" id="Div2"> <input type="button" id="exit2" value="退出" /> 片区资料2222 </div> <div class="menu_form_body" > <div id="Div3"> 片区名称:yj </div> </div> </div> </body> </html> [Ctrl+A 全选 注:引入外部Js需再刷新一下页面才能执行]
打包下载
作者最新文章
JS处理含Emoji或中文的字符串转数组乱码问题
2026-11-05 16:12:28
JS怎么使用展开运算符合并对象
2026-11-05 14:42:18
ES6+环境下判断JS对象为空的简洁写法
2026-11-05 12:12:23
怎么通过replacer函数自定义JS中JSON的格式化输出
2026-11-05 11:19:44
JS正则表达式基础:字面量与RegExp构造函数的区别及常用元字符
2026-11-05 11:16:58
