javascript 通过封装div方式弹出div窗体
作者:bea
图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 ; //窗口高度,并没用来设
图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();
};
调用:
代码如下:
<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>
<script type="text/javascript">
/**************************************************
* DivWindow.js
**************************************************/
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();
};
//存储窗口到数组
DivWindow.ArrayW = new Array();
//字符串连接类
DivWindow.StringBuild = function(){
this.arr = new Array();
this.push = function(str){
this.arr.push(str);
};
this.toString = function(){
return this.arr.join("");
};
};
//拖动类
DivWindow.Drag = function(o ,oRoot){
var _self = this;
//拖动对象
this.obj = (typeof oRoot != "undefined") ?oRoot : o;
this.relLeft = 0; //记录横坐标
this.relTop = 0; //记录纵坐标
o.onselectstart = function(){
return false;
};
o.onmousedown = function(e){ //鼠标按下
e = _self.fixE(e);
_self.relLeft = e.clientX - _self.fixU(_self.obj.style.left);
_self.relTop = e.clientY - _self.fixU(_self.obj.style.top);
document.onmousemove = function(e){
_self.drag(e);
//_self.obj.style.border = "1px dashed #000000";
//_self.obj.style.filter = "alpha(opacity=30)";
//_self.obj.style.opacity = "0.3";
};
document.onmouseup = function(){
_self.end();
//_self.obj.style.border = "1px solid #cccccc";
//_self.obj.style.borderBottom = "2px solid #E0E0E0";
//_self.obj.style.borderRight = "2px solid #E0E0E0";
//_self.obj.style.filter = "alpha(opacity=100)";
//_self.obj.style.opacity = "1";
};
};
this.drag = function(e){ //拖动
e = this.fixE(e);
var l = e.clientX - this.relLeft;
var t = e.clientY - this.relTop;
if (t < 0)
{
t = 0; //防止头部消失
}
this.obj.style.left = l +"px";
this.obj.style.top = t +"px";
};
this.end = function(){ //结束拖动
document.onmousemove = null;
document.onmouseup = null;
};
this.fixE = function(e){ //修复事件
if (typeof e == "undefined") e = window.event;
return e;
};
this.fixU = function(u){ //处理px单位
return parseInt(u.split("p")[0]);
};
};
//窗口拖动
DivWindow.prototype.startDrag = function(){
var obj = document.getElementById(this.popup);
new DivWindow.Drag(obj.childNodes[0] ,obj);
};
//设定窗口优先级
DivWindow.prototype.setTop = function(){
document.getElementById(this.popup).onclick =
document.getElementById(this.popup).onmousedown =
function(){
for(var i=0;i<DivWindow.ArrayW.length;i++)
{
DivWindow.ArrayW[i].style.zIndex = 1;
}
this.style.zIndex = 100;
};
};
//显示
DivWindow.prototype.popupShow=function()
{ document.all.mask.style.display="block";
document.all.mask.style.width=window.screen.width +20;
document.all.mask.style.height=window.screen.width +20;
var element = document.getElementById(this.popup);
element.style.position = "absolute";
element.style.visibility = "visible";
element.style.display = "block";
element.style.width=this.width;
element.style.height='auto';
element.style.left = (window.screen.width - this.width)/2+"px";
//element.style.top =(window.screen.height-this.height-100)/2+"px";
element.style.top =20+"px";
element.style.zIndex=this.zindex;
}
//设置关闭
DivWindow.prototype.setCommond = function(){
var _self = this;
//根对象
var obj = document.getElementById(this.popup);
var exit = document.getElementById(this.popup_exit);
var triggServerEvent=document.getElementById(this.exitButton);
//设置关闭
exit.onclick = function(){
obj.style.display = "none";
obj.style.visibility = 'hidden';
document.all.mask.style.display='none'//关闭遮罩层
triggServerEvent.click();//触发服务器端退出事件
};
};
</script>
</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需刷新才能执行]
打包下载
有用 | 无用
猜你喜欢
您可能感兴趣的文章:
- cnblogs csdn 代码运行框实现代码
- 键盘 keycode的值 javascript时触发事件时很有用的要素
- js 函数的执行环境和作用域链的深入解析
- 提高网站性能之 如何对待JavaScript
- JavaScript Sort 表格排序
- DOM 脚本编程中的兄弟节点
- javascript GUID生成器实现代码
- JavaScript中的JSON 中文版翻译
- json 实例详细说明教程
- json 入门基础教程 推荐
- jquery text()要注意啦
- CCPry JS类库 代码
- Iframe 自适应高度并实时监控高度变化的js代码
- 扩展jQuery 键盘事件的几个基本方法
- jQuery 扩展对input的一些操作方法
- jquery 弹出层实现代码
- 网页禁用右键实现代码(JavaScript代码)
- JavaScript 工具库 Cloudgamer JavaScript Library v0.1 发布
- JScript 脚本实现文件下载 一般用于下载木马