jQuery弹出层始终垂直居中,相对于屏幕,相对于当前窗口

弹出层永远是一个前端必须搞定的东西,一般情况下,如果弹出层有固定的高和宽,用样式即可搞定,但是如果碰到没有固定高或者固定宽或者固定高和宽的时候,我们就需要用JS去处理,去动态获取当前窗口高或者宽;今天弄了2种情况,一个是相对于屏幕窗体,一个是相对于当前的窗口,看代码,或许对你有用:

[html]  view plain  copy
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">  
  2. <html xmlns="http://www.w3.org/1999/xhtml">  
  3. <head>  
  4. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />  
  5. <title>无标题文档</title>  
  6. <style>  
  7. body{margin:0px;padding:0px}  
  8. #div1{background:#F00;color: #FFF; display:none;position:absolute;}  
  9. #div2{background:#333333;color: #FFF;width:400px;display:none; position:absolute;}  
  10. </style>  
  11. <Script type="text/javascript" src="http://jt.875.cn/js/jquery.js"></script>  
  12. //浏览器窗口垂直居中  
  13. <!--  
  14. <Script type="text/javascript">  
  15. function popup(popupName){  
  16.     var _scrollHeight = $(document).scrollTop(),//获取当前窗口距离页面顶部高度  
  17.     _windowHeight = $(window).height(),//获取当前窗口高度  
  18.     _windowWidth = $(window).width(),//获取当前窗口宽度  
  19.     _popupHeight = popupName.height(),//获取弹出层高度  
  20.     _popupWeight = popupName.width();//获取弹出层宽度  
  21.     _posiTop = (_windowHeight - _popupHeight)/2 + _scrollHeight;  
  22.     _posiLeft = (_windowWidth - _popupWeight)/2;  
  23.     popupName.css({"left": _posiLeft + "px","top":_posiTop + "px","display":"block"});//设置position  
  24. }  
  25. $(function(){  
  26.     $(".btn1").click(function(){  
  27.         popup($("#div1"));  
  28.     });  
  29.     $(".btn2").click(function(){  
  30.         popup($("#div2"));  
  31.     });  
  32. });  
  33. </script>   
  34. -->  
  35.   
  36. //当前窗口垂直居中  
  37. <Script type="text/javascript">  
  38. function popup(popupName){    
  39.     _windowHeight = $(".wrap").height(),//获取当前窗口高度  
  40.     _windowWidth = $(".wrap").width(),//获取当前窗口宽度  
  41.     _popupHeight = popupName.height(),//获取弹出层高度  
  42.     _popupWeight = popupName.width();//获取弹出层宽度  
  43.     _posiTop = (_windowHeight - _popupHeight)/2;  
  44.     _posiLeft = (_windowWidth - _popupWeight)/2;  
  45.     popupName.css({"left": _posiLeft + "px","top":_posiTop + "px","display":"block"});//设置position  
  46. }  
  47. $(function(){  
  48.     $(".btn1").click(function(){  
  49.         popup($("#div1"));  
  50.     });  
  51.     $(".btn2").click(function(){  
  52.         popup($("#div2"));  
  53.     });  
  54. });  
  55.   
  56. $(window).resize();   
  57.   
  58.   
  59.  </script>  
  60. </head>  
  61.   
  62. <body >  
  63.   
  64. <div >  
  65. <input class="btn1" type="button" value="1"/></div>  
  66. <input class="btn2" type="button" value="2"/></div>  
  67.   
  68. <div style="width:500px;  background:#ccc; position:relative; top:100px; left:200px;" class="wrap">  
  69. 我是当前窗口啊我是当前窗口啊我是当前窗口啊我是当前窗口啊我是当前窗口啊我是当前窗口啊<br>我是当前窗口啊我是当前窗口啊我是当前窗口啊<br>我是当前窗口啊我是当前窗口啊我是当前窗口啊<br>我是当前窗口啊我是当前窗口啊我是当前窗口啊<br>我是当前窗口啊我是当前窗口啊我是当前窗口啊  
  70. <br>我是当前窗口啊我是当前窗口啊我是当前窗口啊我是当前窗口啊  
  71. <div id="div1">我是弹出窗口1111啊<br>我是弹出窗口1111啊<br>我是弹出窗口1111啊<br>我是弹出窗口1111啊<br>我是弹出窗口1111啊<br>我是弹出窗口1111啊<br>我是弹出窗口1111啊</div>  
  72. <div id="div2">我是弹出窗口2222啊<br>我是弹出窗口2222啊<br>我是弹出窗口2222啊<br>我是弹出窗口2222啊<br>我是弹出窗口2222啊</div>  
  73. </div>  
  74.   
  75.   
  76.   
  77. </body>  
  78. </html> 
  79. 转自:http://blog.csdn.net/congcong875/article/details/8747625
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值