两种方式解决DIV弹出窗口问题

 本文向大家描述一下如何***实现DIV弹出层功能,这里有二种方式处理DIV弹出窗口,一种是用JavaScript代码,另一种是用样式,具体内容请看本文详细介绍,相信本文介绍一定会让你有所收获。

成都创新互联公司是一家专注于网站设计制作、成都网站建设与策划设计,宁都网站建设哪家好?成都创新互联公司做网站,专注于网站建设10年,网设计领域的专业建站公司;建站业务涵盖:宁都等地区。宁都做网站价格咨询:18982081108

***实现DIV弹出层功能

要想***实现DIV弹出层功能,这里推荐一个轻量级JavaScript工具:subModal(包括图片和样式仅8KB左右,JavaScript文件4.27KB),subModal实现用DIV模拟的模式DIV弹出窗口,非常漂亮且简单实用。其中发表评论窗口就是DIV弹出窗口样式。

下面将介绍此JavaScript工具的使用:

在开始使用之前需要下载文件:

已经整理后的版本:subModal

原始版本(英文):http://gabrito.com/files/subModal/可以在此页面查看运行效果。页面引用相关文件。在需要DIV弹出窗口的页面上引用样式文件和Javascript文件:

viewsourceprint?

 
 
 
  1. 1.
  2. 2.

源代码中的submodal.JavaScript,submodal.css,loading.html,loading.gif,close.gif是必须文件,其他为演示实例文件。

若要改变DIV弹出窗口样式,或者改变close.gif图片路径,请编辑submodal.css
若需要改变加载效果,需编辑loading.html,现在我们就可以编写代码来DIV弹出窗口了,有二种方式处理DIV弹出窗口:

◆用JavaScript代码:

DIV弹出窗口的函数为:showPopWin(url,width,height,returnFunc),url为弹出链接,width为宽带,height为高度,returnFunc为当窗口弹出后的回调函数。其中高宽以像素为单位,例如:

viewsourceprint?

 
 
 
  1. 1.

  2. "showPopWin('modalcontent.html',400,200,null);">
  3. showmodalwindowbutton

◆用样式:

subModal支持设置特别的样式来完成DIV弹出窗口的功能。当链接上设置submodal或者submodal-width-height格式的样式后,页面运行过程中subModal将会为链接增加处理事件。当点击链接时,将在DIV弹窗中展示链接的页面,而不是新的浏览器窗口。

例如:

viewsourceprint?

 
 
 
  1. 1.

  2. showmodalwindowusingclass
  3. 2.

  4. 3.
  5. 4.

  6. showmodalwindowusingclassandoverridingdefaultsize
  7. 5.

 关闭弹出可以在当前页码调用hidePopWin()函数或者在弹出页面中调用window.parent.hidePopWin(),如:

viewsourceprint?

 
 
 
  1. 1.close

在http://www.cnblogs.com/lzppcc/archive/2008/01/14/1038977.html看到到的这个弹出框很漂亮,但不能通过鼠标拖动弹出的窗口,难免遗憾,便自己写了JavaScript代码,实现了这个功能.

subModal.JavaScript
//***********************以下为新增控件的拖曳事件***************************************************

 
 
 
  1. vargMouseMove=false;
  2. varx,y,z
  3. //开始拖曳
  4. functionstartDrag(obj){
  5. if(event.button==1||event.button==0){
  6. x=window.event.clientX;
  7. y=window.event.clientY;
  8. z=obj.style.zIndex;
  9. obj.style.zIndex=500;
  10. obj.setCapture();//设置属于当前对象的鼠标捕捉
  11. gMouseMove=true;
  12. }
  13. }
  14. //拖动事件,obj为激发当前事件的控件,dragID为等拖曳控件的ID
  15. varDraging=functionDraging(obj,dragID){
  16. if(gMouseMove){
  17. varoldwin;
  18. if(dragID=='undefined'||dragID==''){
  19. oldwin=obj.parentNode
  20. }
  21. else{
  22. oldwin=document.getElementById(dragID);
  23. }
  24. oldwin.style.left=pixParse(oldwin.style.left)+window.event.clientX-x;
  25. oldwin.style.top=pixParse(oldwin.style.top)+window.event.clientY-y;
  26. x=window.event.clientX;
  27. y=window.event.clientY;
  28. }
  29. }
  30. //将象素单位转为数据129px-->129
  31. functionpixParse(str){
  32. strstr=str.replace('px','');
  33. returnparseInt(str);
  34. }
  35. //停止拖动
  36. functionstopDrag(obj){
  37. gMouseMove=false;
  38. obj.style.zIndex=z;//还原Z座标
  39. obj.releaseCapture();
  40. }

 initPopUp()方法中增加了三个事件,如下:

 
 
 
  1. id="ext-gen15"style="MozUserSelect:none;
  2. KhtmlUserSelect:none"unselectable="on"
  3. onMousedown="startDrag(this)"onMouseup="stopDrag(this)"
  4. onMousemove="Draging(this,\'ext-comp-1001\')">

当前题目:两种方式解决DIV弹出窗口问题
文章位置:http://www.mswzjz.com/qtweb/news34/166534.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联