Jquery教程:JS弹出窗口DIV层效果代码

 转载自 分享

 

使用DIV弹出窗口来动态显示内容的原理:首先采用CSS和HTML隐藏弹窗中的内容,然后利用JavaScript(本教程中是JQuery)来动态显 示它们。这种效果不仅能够充分利用有限的版面空间,而且能够提高用户体验;更重要的是,它并不影响SEO效果(因为它实际存在于页面中,只是初始为不可见 状态)。

什么是jQuery?

引用jQuery作者的话说,jQuery是一个快速简洁的用于简化HTML文档的事件处理、动画效果、AJax交互的快速稳定的JavaScript类 库。一句话就是,jQuery做好了所有底层的东西,我们只需要短短几行代码,就可以完成原来可能需要几十行JS代码才能完成的功能。

第一步:我们将要做什么?

一图抵千言。让我们看看这个DIV弹出窗口的效果截图:

看到了吗?我们制作了一个非常简单的网页,里面包含一个按钮。点击这个按钮就可以激活这个漂亮的自定义弹出窗口了!抛弃浏览器自带的生硬弹窗效果吧!

第二步:创建一个简单的网页

HTML

这里,我们创建了2个html区块。一个DIV名为popupContact,这里是弹出窗口中所包含的内容,初始状态下它是不可见的(通过CSS实现)。另一个DIV区块:backgroundPopup主要用做陪衬突出我们弹出窗口的效果,它初始状态也是不可见的。所谓红花还须绿叶衬,就是这个道理了。

  1. <body>  
  2.     <center>  
  3.         <p><a href="http://www.code52.net"><img src="logo.gif" alt="点击进入代码吾爱"/></a></p>  
  4.         <p><a href="http://www.code52.net"><img src="banner.bmp" alt="点击进入代码吾爱"/></a></p>  
  5.         <div id="button"><input type="submit" value="点击这里查看效果" /></div>  
  6.         <p></p>  
  7.         <p>查看教程原文:<a href="http://www.code52.net/page/JS/js200811_26_225.html">Jquery教程:JS弹出窗口DIV层效果代码 </a></p>  
  8.     </center>  
  9.     <div id="popupContact">  
  10.         <a id="popupContactClose">x</a>  
  11.         <h1>弹出窗口的标题</h1>  
  12.         <p id="contactArea">  
  13.             这就是我们创建的漂亮DIV弹窗效果。可以看到jQuery实在是非常强大,我们仅需少量的CSS和JavaScript代码即可完成这一效果。<br/><br/>  
  14.             我们可以在这个弹窗之中放置一个登录框、注册表单、重要事件提醒等等。   
  15.             <br/><br/>  
  16.             要关闭这个窗口,请点击右上方的X按钮或点击弹窗外的背景或按下键盘上的ESC键。   
  17.             <br/><br/>  
  18.             <center><a href="http://www.code52.net/"><img src="logo.gif" alt="点击进入代码吾爱"/></a></center>  
  19.         </p>  
  20.     </div>  
  21.     <div id="backgroundPopup"></div>  
  22. </body>    

CSS样式

写好了HTML代码,我们需要给这个网页添加一些CSS样式了。其中最重要的是将popupContact  backgroundPopup 2个DIV区块隐藏起来。因为我们在打开页面的时候并不希望见到他们,不是么?它们的出现得益于用户主动按下某个按钮或链接,然后通过JavaScript来显示它们。  

  1.   
  2. #backgroundPopup{   
  3. display:none;   
  4. position:fixed;   
  5. _position:absolute;   
  6. height:100%;   
  7. width:100%;   
  8. top:0;   
  9. left:0;   
  10. background:#000000;   
  11. border:1px solid #cecece;   
  12. z-index:1;   
  13. }   
  14. #popupContact{   
  15. display:none;   
  16. position:fixed;   
  17. _position:absolute;   
  18. height:384px;   
  19. width:408px;   
  20. background:#FFFFFF;   
  21. border:2px solid #cecece;   
  22. z-index:2;   
  23. padding:12px;   
  24. font-size:13px;   
  25. }   
  26. #popupContact h1{   
  27. text-align:left;   
  28. color:#6FA5FD;   
  29. font-size:22px;   
  30. font-weight:700;   
  31. border-bottom:1px dotted #D3D3D3;   
  32. padding-bottom:2px;   
  33. margin-bottom:20px;   
  34. }   
  35. #popupContactClose{   
  36. font-size:14px;   
  37. line-height:14px;   
  38. right:6px;   
  39. top:4px;   
  40. position:absolute;   
  41. color:#6fa5fd;   
  42. font-weight:700;   
  43. display:block;   
  44.   

CSS代码有些长,不过真正需要大家修改的是我上面做过注释的区块。都是一些非常常见的CSS属性定义。如果有不懂的地方,请查找本站对应资源。

第四步:添加JavaScript代码

此步是本教程的核心,也是实现DIV弹出窗口效果的核心步骤。jQuery允许我们仅通过少数几个过程函数实现这个超酷的弹窗效果;所有这些函数都被我单独打包成了一个JS文件——popup.js

代码流程解释

我们首先需要创建一个名称为popupStatus的变量来控制弹出窗口的显示与否。

 

//初始化:是否开启DIV弹出窗口功能
//0 表示开启; 1 表示不开启;

var popupStatus = 0;

 

接下来是我们的主函数——Jquery加载弹窗函数:

 

  1. //使用Jquery加载弹窗 
  2. function loadPopup(){   
  3. //仅在开启标志popupStatus为0的情况下加载  
  4. if(popupStatus==0){   
  5. $("#backgroundPopup").css({   
  6. "opacity""0.7"  
  7. });   
  8. $("#backgroundPopup").fadeIn("slow");   
  9. $("#popupContact").fadeIn("slow");   
  10. popupStatus 1;   
  11. }   
  12.  

 

关闭/去除弹出窗口的函数:

 

  1. //使用Jquery去除弹窗效果 
  2. function disablePopup(){   
  3. //仅在开启标志popupStatus为1的情况下去除
  4. if(popupStatus==1){   
  5. $("#backgroundPopup").fadeOut("slow");   
  6. $("#popupContact").fadeOut("slow");   
  7. popupStatus 0;   
  8. }   
  9.  

 

我们还希望弹窗出现在屏幕的中央位置:

 

  1. //将弹出窗口定位在屏幕的中央
  2. function centerPopup(){   
  3. //获取系统变量
  4. var windowWidth document.documentElement.clientWidth;   
  5. var windowHeight document.documentElement.clientHeight;   
  6. var popupHeight $("#popupContact").height();   
  7. var popupWidth $("#popupContact").width();   
  8. //居中设置   
  9. $("#popupContact").css({   
  10. "position""absolute",   
  11. "top"windowHeight/2-popupHeight/2,   
  12. "left"windowWidth/2-popupWidth/2   
  13. });   
  14. //以下代码仅在IE6下有效
  15.   
  16. $("#backgroundPopup").css({   
  17. "height"windowHeight   
  18. });   
  19. }

 

好了,有了这些基本函数,我们就可以通过jQuery对事件的触发控制来组合这些基本函数以实现弹出DIV效果了。比如,当用户触发点击按钮事件时,我们 依次执行居中函数(centerPopup)和窗口加载函数(loadPopup)即可。当用户点击弹出窗口右上方的"X"形关闭按钮时,触发一个事件执 行:关闭弹窗函数。

需要注意的是,所有这些事件触发过程都必须包含在以下代码中:

 

  1. $(document).ready(function(){   
  2. //执行触发事件的代码区域  
  3. });

 

当按下id为#button的按钮时触发弹出窗口的事件:

 

 

  1. //打开弹出窗口   
  2. //按钮点击事件!
  3. $("#button").click(function(){   
  4. //调用函数居中窗口
  5. centerPopup();   
  6. //调用函数加载窗口
  7. loadPopup();   
  8. });

 

最后一步是关闭事件的触发,这里我们编写了三种不同的方式来触发关闭窗口事件:点击弹窗右上角的"X"、点击窗口周围的背景和按下键盘上的ESC键。所以代码如下:

 

  1. //关闭弹出窗口   
  2. //点击"X"所触发的事件
  3. $("#popupContactClose").click(function(){   
  4. disablePopup();   
  5. });   
  6. //点击窗口以外背景所触发的关闭窗口事件!
  7. $("#backgroundPopup").click(function(){   
  8. disablePopup();   
  9. });   
  10. //键盘按下ESC时关闭窗口!
  11. $(document).keypress(function(e){   
  12. if(e.keyCode==27 &amp;amp;amp;&amp;amp;amp; popupStatus==1){   
  13. disablePopup();   
  14. }   
  15. }); 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值