Jquery制作窗口弹出效果(转)

来源:互联网 发布:如何将域名转入万网 编辑:程序博客网 时间:2024/05/22 16:41

今天给大家带来的是,实用jQuery技术实现各种弹窗效果,比如弹出指定位置的窗口(左下角、右下角、居中...)等,尤其是弹出右下角窗口特别实用,如果能够跟随滚动条一起滚动,那就非常good了!一些企业网站也会经常采用这种方式重点宣传自己的产品。
       先看下效果图:
       弹出居中窗口效果
      

 


       弹出左下角窗口效果
       
      

 


      弹出右下角窗口效果
     
      

 



      如上图,要实现弹出指定位置的窗口其实也并不难,主要就是要计算出要弹出窗口的左上角坐标,那到底怎样计算出各种位置窗口的左上角坐标我们做如下分析:
      弹出居中窗口:
      如图求出窗口的左上角坐标,计算方式如图

     

 

       注意黑色部分是滚动条区域,当出现滚动条时 x和y分别还要加上滚动条滚动的宽度和滚动条滚动的高度
       弹出左下角窗口分析图如下:
      


 接上文,[原创+源码]jQuery实现弹出居、右下角、左下角窗口效果(一)我们先来看看怎么实现弹出居中窗口,弹出居中窗口主要是要获取几个参数,分别为浏览器的高度、宽度
     当前窗口的高度、宽度,滚动条滚动的高度和宽度等,然后再定位这个层。
     代码如下:

 

  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. <link href="window.css" type="text/css" rel="stylesheet" />
     
  5. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
     
  6. <script language="javascript" type="text/javascript" src="../include/jquery-1.5.1.min.js"></script>
     

  7.  
  8. <script type="text/javascript">
     
  9. $(function(){
     

  10.  
  11. //监听按钮事件
     
  12. $("#btn1").click(function(){
     
  13. //执行窗口移动效果
     
  14. MoveWindow();
     

  15.  
  16. });
     
  17. //添加关闭图片的单击事件
     
  18. $(".title img").click(function(){
     
  19. //隐藏窗口
     
  20. $(this).parent().parent().hide('slow');
     

  21.  
  22. });
     

  23.  

  24.  

  25.  
  26. });
     
  27. function MoveWindow(){
     

  28.  
  29. //获取浏览器的宽度
     
  30. var bwidth=$(window).width();
     
  31. //获取浏览器的高度
     
  32. var bheight=$(window).height();
     
  33. //获取当前窗口宽度
     
  34. var winwidth=$("#center").width();
     
  35. //获取当前窗口高度
     
  36. var winheight=$("#center").height();
     

  37.  
  38. //获取滚动条的高度
     
  39. var sTop=$(window).scrollTop();
     
  40. //获取滚动条的宽度
     
  41. var sLeft=$(window).scrollLeft();
     

  42.  
  43. //计算窗口距左的距离
     
  44. var left=sLeft+(bwidth-winwidth)/2;
     
  45. //计算窗口距上的距离
     
  46. var top=sTop+(bheight-winheight)/2;
     
  47. //设置层的位置
     
  48. $("#center").css("left",left).css("top",top).show("slow");
     

  49.  
  50. }
     
  51. </script>
     

  52.  
  53. <title>无标题文档</title>
     
  54. </head>
     

  55.  
  56. <body>
     

  57.  
  58. <br><br><br><br><br><br><br><br><br><br>
     
  59. <br><br><br><br><br><br><br><br><br><br>
     
  60. <br><br><br><br><br><br><br><br><br><br>
     
  61. <br><br><br><br><br><br><br><br><br><br>
     
  62. <br><br><br><br><br><br><br><br><br><br>
     
  63. <input type="button" id="btn1" value="打开居中窗口" />
     
  64. <div class="window" id="center">
     

  65.  
  66. <div class="title">
     
  67. <img src="../images/close.jpg" />这里标题文字
     
  68. </div>
     
  69. <div class="content">
     
  70. CSDN中文it社区<br>
     
  71. CSDN学生大本营 李伟<br>
     
  72. 3G开发者联盟<br>
     
  73. 3gput.com
     
  74. </div>
     

  75.  
  76. </div>
     

  77.  
  78. </body>
     
  79. </html>
复制代码

       弹出左下角窗口和弹出居中窗口类似,也是计算下坐标
 

  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. <link href="window.css" type="text/css" rel="stylesheet" />
     
  5. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
     
  6. <script language="javascript" type="text/javascript" src="../include/jquery-1.5.1.min.js"></script>
     

  7.  
  8. <script type="text/javascript">
     
  9. $(function(){
     

  10.  
  11. //监听按钮事件
     
  12. $("#btn1").click(function(){
     

  13.  
  14. //获取浏览器的宽度
     
  15. var bwidth=$(window).width();
     
  16. //获取浏览器的高度
     
  17. var bheight=$(window).height();
     
  18. //获取当前窗口宽度
     
  19. var winwidth=$("#center").outerWidth(true);
     
  20. //获取当前窗口高度
     
  21. var winheight=$("#center").outerHeight(true);
     

  22.  
  23. //获取滚动条的高度
     
  24. var sTop=$(window).scrollTop();
     
  25. //获取滚动条的宽度
     
  26. var sLeft=$(window).scrollLeft();
     

  27.  
  28. //计算窗口距左的距离
     
  29. var left=0;
     
  30. //计算窗口距上的距离
     
  31. var top=sTop+bheight-winheight;
     
  32. //设置层的位置
     
  33. $("#center").css("left",left).css("top",top).show("slow");
     

  34.  
  35. });
     
  36. //添加关闭图片的单击事件
     
  37. $(".title img").click(function(){
     
  38. //隐藏窗口
     
  39. $(this).parent().parent().hide('slow');
     

  40.  
  41. });
     

  42.  

  43.  
  44. });
     

  45.  
  46. </script>
     

  47.  
  48. <title>无标题文档</title>
     
  49. </head>
     

  50.  
  51. <body>
     

  52.  
  53. <br><br><br><br><br><br><br><br><br><br>
     
  54. <br><br><br><br><br><br><br><br><br><br>
     
  55. <br><br><br><br><br><br><br><br><br><br>
     
  56. <br><br><br><br><br><br><br><br><br><br>
     
  57. <br><br><br><br><br><br><br><br><br><br>
     
  58. <input type="button" id="btn1" value="打开左下角窗口" />
     
  59. <div class="window" id="center">
     

  60.  
  61. <div class="title">
     
  62. <img src="../images/close.jpg" />这里标题文字
     
  63. </div>
     
  64. <div class="content">
     
  65. CSDN中文it社区<br>
     
  66. CSDN学生大本营 李伟<br>
     
  67. 3G开发者联盟<br>
     
  68. 3gput.com
     
  69. </div>
     

  70.  
  71. </div>
     

  72.  
  73. </body>
     
  74. </html>
复制代码

      弹出右下角窗口:弹出右下角窗口我做了很多处理,比如滚动条事件的监听,当滚动条位置移动的时候则移动窗口的位置,同时设置了动画效果,使得窗口的移动显得更加的平滑,代码如下:

 

  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. <link href="window.css" type="text/css" rel="stylesheet" />
     
  5. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
     
  6. <script language="javascript" type="text/javascript" src="../include/jquery-1.5.1.min.js"></script>
     

  7.  
  8. <script type="text/javascript">
     
  9. $(function(){
     

  10.  
  11. //监听按钮事件
     
  12. $("#btn1").click(function(){
     

  13.  
  14. MoveWindow();
     

  15.  
  16. });
     
  17. //添加关闭图片的单击事件
     
  18. $(".title img").click(function(){
     
  19. //隐藏窗口
     
  20. $(this).parent().parent().hide('slow');
     

  21.  
  22. });
     

  23.  
  24. //监听滚动条的滚动事件
     
  25. $(window).scroll(function(){
     

  26.  
  27. MoveWindow();
     

  28.  
  29. });
     

  30.  

  31.  
  32. });
     
  33. var timeoutid;
     
  34. function MoveWindow(){
     
  35. clearTimeout(timeoutid);
     
  36. timeoutid=setTimeout(function(){
     
  37. //获取浏览器的宽度
     
  38. var bwidth=$(window).width();
     
  39. //获取浏览器的高度
     
  40. var bheight=$(window).height();
     
  41. //获取当前窗口宽度
     
  42. var winwidth=$("#center").outerWidth(true);
     
  43. //获取当前窗口高度
     
  44. var winheight=$("#center").outerHeight(true);
     

  45.  
  46. //获取滚动条的高度
     
  47. var sTop=$(window).scrollTop();
     
  48. //获取滚动条的宽度
     
  49. var sLeft=$(window).scrollLeft();
     

  50.  
  51. //计算窗口距左的距离
     
  52. var left1=sLeft+bwidth-winwidth;
     
  53. //计算窗口距上的距离
     
  54. var top1=sTop+bheight-winheight;
     
  55. //设置层的位置,添加动画效果
     
  56. $("#center").animate({left:left1,top:top1},300).show("slow");
     

  57.  

  58.  
  59. },300);
     
  60. }
     

  61.  
  62. </script>
     

  63.  
  64. <title>无标题文档</title>
     
  65. </head>
     

  66.  
  67. <body>
     

  68.  
  69. <br><br><br><br><br><br><br><br><br><br>
     
  70. <br><br><br><br><br><br><br><br><br><br>
     
  71. <br><br><br><br><br><br><br><br><br><br>
     
  72. <br><br><br><br><br><br><br><br><br><br>
     
  73. <br><br><br><br><br><br><br><br><br><br>
     
  74. <input type="button" id="btn1" value="打开右下角窗口" />
     
  75. <div class="window" id="center">
     

  76.  
  77. <div class="title">
     
  78. <img src="../images/close.jpg" />CSDN欢迎您
     
  79. </div>
     
  80. <div class="content">
     
  81. 这里是正文部分 hell CSDN
     
  82. </div>
     

  83.  
  84. </div>
     

  85.  
  86. </body>
     
  87. </html>

 

原创粉丝点击