JS模拟Dialog弹出浮动框效果代码

JS模拟Dialog弹出浮动框效果代码

这篇文章主要介绍了射流研究…模拟对话弹出浮动框效果代码,涉及Java脚本语言可拖动窗口的创建及布局相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下

本文实例讲述了射流研究…模拟对话弹出浮动框效果代码。分享给大家供大家参考。具体如下:

这里演示射流研究…模拟对话弹出浮动框,蓝色经典风格,可以创建一个新层,可设置弹出层的标题和内容,用它可实现一个登录框,或用在后台管理中。

运行效果截图如下:

在线演示地址如下:

http://演示。jb51。net/js/2015/js-Mn-dialog-float-DLG-style-demo/

具体代码如下:

!DOCTYPE html PUBLIC -//W3C//DTD XHTML 1.0 Transitional//EN

http://www。w3。org/TR/XHTML 1/DTD/XHTML 1-过渡。 DTD

html xmlns= http://。w3。 org/1999/XHTML

meta http-equiv= Content-Type Content= text/html;charset=gb2312 /

标题对话框浮动窗口/标题

style type=text/css 。对话框容器{ height:400 px;宽度:400像素边框:1px纯色# 14495f位置:绝对;字体大小:13px}。对话框标题{ height:26px;宽度:自动;背景-图片:URL(images/103444839 _ p . gif);}。dialogtitleinfo { float:left;高度:20px边距-顶部:2px左边距:10px行高:20px垂直对齐:居中;颜色:# FFFFFF字体粗细:粗体;}。dialogtitleico { float:right;高度:20px宽度:21px边距-顶部:2px右边距:5px文本对齐:居中;行高:20px垂直对齐:居中;背景-图片:URL(images/103419495 _ p . gif);背景-位置:-21px 0px}。对话框正文{ padding:10px;宽度:自动;背景色:# FFFFFF}。对话框底部{

底部:1px右:1px光标:西北-调整大小;

位置:绝对;

背景-图片:URL(images/103419495 _ p . gif);

背景-位置:-42px-10px;

宽度:10px

高度:10px

字体大小:0;}

/风格

/头

身体

输入值=创建type= button onclick= creat()/

div id=aa/div

脚本

var z=1,i=1,left=10

var isIE=(document.all)?真:假;

var $=函数(id) {

返回文档。getelementbyid(id);

};

var扩展=函数(目标,源){

对于(源中的变量属性){

目的地[属性]=源[属性];

}

}

var Bind=function(object,fun,args) {

返回函数(){

返回fun.apply(object,args | |[]);

}

}

var bindas事件监听器=function(object,fun) {

var args=数组。原型。切片。打电话(参数)。切片(2);

返回函数(事件){

返回fun.apply(对象,[事件||窗口。事件])。concat(args));

}

}

var current style=函数(元素){

返回元素。当前样式| |文档。默认视图。getcomputedstyle(element,null);

}

函数create(elm,parent,fn){ var element=document。createelement(榆树);fnfn(元素);parentparent.appendChild(元素);返回元素};

函数addListener(element,e,fn){ element.addEventListener?element.addEventListener(e,fn,false):element。附加事件( on e,fn)};

函数removeListener(元素,e,fn){元素。删除事件侦听器吗?element.removeEventListener(e,fn,false):element。detachevent( on e,fn)};

var Class=function(properties){

var _ class=function(){ return(arguments[0]!==null这个。初始化的类型(this。initialize)== function )?this.initialize.apply(this,arguments):this;};

_ class.prototype=properties

返回_类

};

变量对话框=新类({

选项:{

宽度:400,

身高:400,

左:100,

Top : 100,

头衔身高:26,

最小宽度:200,

明海特:200,

坎塞利科:没错,

ResizeIco : false,

信息: 新闻标题,

内容: 无内容,

Zindex : 2

},

初始化:函数(选项){

这个. dragobj=null

这个. resize=null

这个. cancel=null

这个. body=null

这个. x=0;

这个. y=0;

这个. fM=BindAsEventListener(这个,这个。动);

这个. fS=Bind(这个,这个。停);

这个. isdrag=null

这个. Css=null

这个宽度=这个。选项。宽度;

这个身高=这个。选项。身高;

这个.左=这个。选项。左;

这个. top=这个。选项。顶;

这个. CancelIco=这个。选项。CancelIco

这个. info=这个。选项。信息;

这个.内容=这个。选项。内容;

这个最小宽度=这个。选项。最小宽度;

这个最小身高=这个。选项。最小高度;

这个标题高度=这个。选项。标题高度;

这个zindex=这个。选项。zindex

扩展(这个,选项);

对话Zindex=这个100 . Zindex

//构造对话

var obj=[dialogcontainter , dialogtitle , dialogtitleinfo , dialogtitleico , dialogbody , dialog bottom ];

for(var I=0;iobj.length我)

{ obj[i]=create(div ,null,function(elm){ elm。class name=obj[I];});}

对象[2]。innerHTML=this .信息;

对象[4]。innerHTML=this .内容;

对象[1]。appendChild(obj[2]);

对象[1]。appendChild(obj[3]);

对象[0].appendChild(obj[1]);

对象[0].appendChild(obj[4]);

对象[0].appendChild(obj[5]);

文档。身体。appendchild(obj[0]);

这个. drag obj=obj[0];

这个. resize=obj[5];

这个. cancel=obj[3];

这个. body=obj[4];

///o,x1,x2

////设置对话的长宽,左侧,顶部

用(这个. dragobj.style){

身高=这个。高度px’;顶部=这个。顶级px’;宽度=这个。宽度px’;左=这个。左px’;zIndex=这个100 . Zindex

}

这个. body.style.height=this .身高-这个标题高度-解析int(当前样式(this ._body).左填充)* 2“px”;

///////////////////////////////////////////////////////////////////////////////添加事件

addListener(this ._dragobj, mousedown ,BindAsEventListener(this,this .Start,true));

addListener(this ._cancel,“鼠标悬停”,Bind(这个,这个106 . change BG,[这个. cancel _ 0px 0px ,-21px 0px ]);

addListener(this ._cancel, mouseout ,Bind(这个,这个106 . change BG,[这个. cancel _ 0px 0px ,-21px 0px ]);

addListener(this ._cancel, mousedown ,BindAsEventListener(this,this .消失));

addListener(this ._body, mousedown ,BindAsEventListener(这个,这个.取消泡泡));

addListener(this ._resize, mousedown ,BindAsEventListener(this,this .Start,false));

},

消失:函数(e){

这个。可取消气泡(e)和:

document.body.removeChild(this ._ drag obj);

},

取消气泡:函数(e){

这个dragobj.style.zIndex=Dialog .Zindex

文档。全部?(e .取消气泡=真):(e .停止传播())

},

Changebg:function(o,x1,x2){

哦。风格。背景位置=(o . style。背景位置==x1)?x2:x1;

},

Start:function(e,isdrag){

如果(!是拖动){这个。可取消气泡(e)和:}

这个. Css _ Css=is drag?{x:left ,y:top}:{x:width ,y:height}

这个dragobj.style.zIndex=Dialog .Zindex

这个. isdrag=isdrag

这个. x=isdrag?(客户端X - this ._dragobj.offsetLeft||0):(这个.拖动对象。向左偏移| | 0);

这个. y=isdrag?(客户——这个. dragobj.offsetTop | | 0):(这个.拖动对象。offsettop | | 0);

如果(isIE)

{

addListener(this ._dragobj, losecapture ,这个. fS);

这个.拖动对象。set capture();

}

其他

{

e。防止默认();

addListener(窗口,‘侠影’,这个._ fS);

}

addListener(文档,‘鼠标移动’,这个._fM)

addListener(文档,‘鼠标左键’,这个._fS)

},

移动:函数(e){

window.getSelection?window.getSelection().removeAllRanges():document。选择。empty();

var i_x=e.clientX - this ._x,i_y=e.clientY - this ._ y;

这个. dragobj.style[this ._Css.x]=(这个. isdrag?Math.max(i_x,0):Math.max(i_x,this .最小宽度)) px ;

这个. dragobj.style[this ._Css.y]=(这个. isdrag?Math.max(i_y,0):Math.max(i_y,this .最小高度))像素

如果(!这个. isdrag)

这个.身体。风格。身高=数学。最大值(I _ y-this .标题高度,这个。米恩海特-这个title height)-2 * parse int(当前样式(this ._body).左填充) px ;

},

停止:函数(){

移除监听器(文档,‘鼠标移动’,这个._ fM);

移除监听器(文档,‘鼠标左键’,这个._ fS);

如果(isIE)

{

removeListener(这._dragobj, losecapture ,这个. fS);

这个.拖动对象。释放capture();

}

其他

{

移除监听器(窗口,‘侠影’,这个._ fS);

};

}

})

新建对话框({宽度:300,高度:300,左侧:300,顶部:300 });

新建对话框({Info:人族,内容:人族很强吗?});

函数creat(){

新建对话框({Info:title=标题我,左:左300,上:左300,内容:内容我,Zindex:(对话. zindex)});

我;左=10;

}

/脚本

/body

/html

希望本文所述对大家的Java脚本语言程序设计有所帮助。

JS模拟Dialog弹出浮动框效果代码