JavaScript 封装 Div 实现可拖动弹窗窗口

作者:拾光

时间:2026-10-25

浏览:327

本文介绍如何使用 JavaScript 封装一个可拖动的 Div 弹窗组件。通过构造函数初始化窗口参数,实现拖拽、关闭及遮罩效果,并提供具体的调用示例和完整代码下载。

文章目录

Div 弹窗效果展示

Div 弹窗效果展示

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

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需再刷新一下页面才能执行]


打包下载

实用工具推荐

电子包浆

绿化、压缩、噪点和虚拟水印,自由调节做旧程度。

使用 ›
图片压缩

选择画质和输出格式,预览压缩前后的大小。

使用 ›
相关文章