jquery的弹出提示框位置居中

基于jquery的弹出提示框始终处于窗口的居中位置(类似于alert弹出框的效果)

 

原理:
获取当前屏幕(窗体)的宽度和高度,因为不同浏览器的窗体大小是不一样的。有了这个,可以计算出来垂直居中的坐标。但是滑动了滚动条怎么依然垂直居中呢?这个时候就要获取当前窗体距离页面顶部的高度,加到刚刚的y轴坐标即可。
$(document)是获取整个网页的,$(window)是获取当前窗体的,这个要搞清楚。
最后把获取的坐标赋给窗体即可,窗体本身是绝对定位的,所以自然可以到窗体中间。

 

最重要的代码:

 

        var screenWidth = $(window).width();
        var screenHeight = $(window).height(); //当前浏览器窗口的 宽高
        var scrolltop = $(document).scrollTop();//获取当前窗口距离页面顶部高度
        var objLeft = (screenWidth - 2)/2 ;   //2 可以根据需要修改

        var objTop = (screenHeight - 100)/2 + scrolltop;  //100可以根据需要修改

 

实例代码   收藏代码
  1. <!DOCTYPE HTML>   
  2. <html>   
  3. <head>   
  4. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />   
  5. <title>弹出确认框始终位于窗口的中间位置的测试</title>   
  6. <style type="text/css">   
  7. .mask { position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: #000; opacity: 0.5; filter: alpha(opacity=50); display: none; z-index: 99; }   
  8. .mess { position: absolute; display: none; width: 250px; height: 100px; border: 1px solid #ccc; background: #ececec; text-align: center; z-index: 101; }   
  9. </style>   
  10. <script type="text/javascript" src="jquery-1.6.1.min.js"></script>   
  11. <script type="text/javascript">   
  12. $(document).ready(function() {   
  13. $('.btn').click(function() {   
  14. $('.mask').css({'display''block'});   
  15. center($('.mess'));   
  16. check($(this).parent(), $('.btn1'), $('.btn2'));   
  17. });   
  18. // 居中   
  19. function center(obj) {   
  20. var screenWidth = $(window).width(), screenHeight = $(window).height(); //当前浏览器窗口的 宽高   
  21. var scrolltop = $(document).scrollTop();(),//获取当前窗口距离页面顶部高度   
  22. var objLeft = (screenWidth - obj.width())/2 ;   
  23. var objTop = (screenHeight - obj.height())/2 + scrolltop;   
  24. obj.css({left: objLeft + 'px', top: objTop + 'px','display''block'});   
  25. //浏览器窗口大小改变时   
  26. $(window).resize(function() {   
  27. screenWidth = $(window).width();   
  28. screenHeight = $(window).height();   
  29. scrolltop = $(document).scrollTop();   
  30. objLeft = (screenWidth - obj.width())/2 ;   
  31. objTop = (screenHeight - obj.height())/2 + scrolltop;   
  32. obj.css({left: objLeft + 'px', top: objTop + 'px','display''block'});   
  33. });   
  34. //浏览器有滚动条时的操作、   
  35. $(window).scroll(function() {   
  36. screenWidth = $(window).width();   
  37. screenHeight = $(widow).height();   
  38. scrolltop = $(document).scrollTop();   
  39. objLeft = (screenWidth - obj.width())/2 ;   
  40. objTop = (screenHeight - obj.height())/2 + scrolltop;   
  41. obj.css({left: objLeft + 'px', top: objTop + 'px','display''block'});   
  42. });   
  43. }   
  44. //确定取消的操作   
  45. function check(obj, obj1, obj2) {   
  46. obj1.click(function() {   
  47. obj.remove();   
  48. closed($('.mask'), $('.mess'));   
  49. });   
  50. obj2.click(function() {   
  51. closed($('.mask'), $('.mess'));   
  52. }) ;   
  53. }   
  54. // 隐藏 的操作   
  55. function closed(obj1, obj2) {   
  56. obj1.hide();   
  57. obj2.hide();   
  58. }   
  59. });   
  60. </script>   
  61. </head>   
  62. <body>   
  63. <input type="button" class="btn" value="btn"/>   
  64. <div>弹出确认框始终位于窗口的中间位置的测试</div>   
  65. <div class="mask"></div>   
  66. <div class="mess">   
  67. <p>确定要删除吗?</p>   
  68. <p><input type="button" value="确定" class="btn1"/>   
  69. <input type="button" value="取消"class="btn2"/></p>   
  70. </div>   
  71. </body>   
  72. </html>  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值