歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> jQuery實戰-窗口效果

jQuery實戰-窗口效果

日期:2017/3/1 10:37:15   编辑:Linux編程

jQuery實戰-窗口效果:

window.html

  1. <html>
  2. <head>
  3. <title>窗口效果</title>
  4. <meta http-equiv=”Content-Type” content=”text/html;charset=UTF-8”>
  5. <link type=”text/css” rel=”stylesheet” href=”css/window.css” />
  6. <script type=”text/javascript” src=”js/jquery.js”></script>
  7. <script type=”text/javascript” src=”js/ window.js”></script>
  8. </head>
  9. <body>
  10. <input type="button" value="左下角顯示窗口" id="leftpop" />
  11. <input type="button" value="屏幕中間顯示窗口" id="centerpop" />
  12. <div class="window">
  13. <div class="title" id="center">
  14. <img alt="關閉" src="images/close.gif" />
  15. 我是中間顯示窗口的標題欄
  16. </div>
  17. <div class="content">
  18. 我是中間顯示窗口的內容區
  19. </div>
  20. </div>
  21. <div class="window" id="left">
  22. <div class="title">
  23. <img alt="關閉" src="image/close.gif" />
  24. 我是左邊顯示窗口的標題欄
  25. </div>
  26. <div class="content">
  27. 我是左邊顯示窗口的內容區
  28. </div>
  29. </div>
  30. <div class="window" id="right">
  31. <div class="title">
  32. <img alt="關閉" src="image/close.gif" />
  33. 我是右邊顯示窗口的標題欄
  34. </div>
  35. <div class="content">
  36. 我是右邊顯示窗口的內容區
  37. </div>
  38. </div>
  39. </body>
  40. </html>

window.css

  1. .window {
  2. background-color: #D0DEF0;
  3. width: 250px;
  4. /*padding: 2px;*/
  5. margin: 5px;
  6. position: absolute; /*控制窗口絕對定位*/
  7. display:none;
  8. }
  9. .content {
  10. height: 150px;
  11. background-color: white;
  12. border: 2px solid #D0DEF0;
  13. padding: 2px;
  14. overflow: auto; /*可顯示滾動條*/
  15. }
  16. .title {
  17. padding:4px;
  18. font-size: 14px;
  19. }
  20. .title img {
  21. width: 16px;
  22. height: 16px;
  23. float: right;
  24. cursor: pointer;
  25. }

window.js

  1. $(document).ready(function() {
  2. //1. 點擊按鈕可以在屏幕中間顯示一個窗口
  3. //2. 點擊按鈕2可以在屏幕的左下角顯示一個窗口
  4. var contentwin = $("#center").mywin({left: "center", top: "center"});
  5. var leftwin = $("#left").mywin({left: "left", top: "bottom"}, function() {
  6. leftwin.slideUp("slow");
  7. } );
  8. $("#contentpop").click(function(){
  9. //鼠標點擊按鈕之後,把id為center的窗口顯示在頁面中間
  10. //計算位於屏幕中間的窗口的左邊界和上邊界的值
  11. // 浏覽器可視區域的寬和高,當前窗口的寬和高
  12. contentwin.show("slow");
  13. });
  14. $("#leftpop").click(function() {
  15. leftwin.slideDown("slow");
  16. }
  17. });
  18. //position包含兩個屬性,一個是left,一個是top
  19. //hidefunc表示執行窗口隱藏的方法
  20. $.fn.mywin = function(position, hidefunc) {
  21. if(position && position instanceof Object) {
  22. var positionleft = position.left;
  23. var positiontop = position.top;
  24. var windowobj = $(window);
  25. var browserwidth = $(window).width();
  26. var browserheight = $(window).height();
  27. var scrollLeft = $(window).scrollLeft();
  28. var scrollTop = $(windwo).scrollTop();
  29. var currentwin = this;
  30. var cwinwidth = currentwin.outerWidth(true);
  31. var cwinheight = currentwin.outerHeight(true);
  32. var left;
  33. var top;
  34. function calLeft(positionleft,scrollLeft,browsewidth,cwinwidth){
  35. if(positionleft && typeof positionleft == "string") {
  36. if(positionleft == "center") {
  37. left = scrollLeft + (browserwidth – cwinwidth) /2;
  38. }else if (positionleft == "left") {
  39. left = scrollLeft;
  40. }else if (positionleft == "right") {
  41. left = scrollLeft + browserwidth – cwinwidth;
  42. }else {
  43. left = scrollLeft + (browserwidth – cwinwidth) /2;
  44. }
  45. }else if(positionleft && typeof positionleft == "number" ) {
  46. left = positionleft;
  47. }else {
  48. left = 0;
  49. }
  50. currentwin.data("positionleft",positionleft);
  51. }
  52. calLeft(positionleft,scrollLeft,browsewidth,cwinwidth)
  53. function calTop(positiontop,scrollTop,browseheight,cwinwidthheight) {
  54. if(positiontop && typeof positiontop == "string") {
  55. if(positiontop == "center") {
  56. top =scrollTop + (browserheight – cwinheight) / 2;
  57. }else if (positiontop == "top") {
  58. top = scrollTop;
  59. }else if (positiontop == "bottom") {
  60. top = scrollTop + browseheight – cwinheight;
  61. }else {
  62. top =scrollTop + (browserheight – cwinheight) / 2;
  63. }
  64. } else if(positionleft && typeof positiontop == "number" ) {
  65. top = positionleft;
  66. }else {
  67. top = 0;
  68. }
  69. currentwin.data("positiontop",positiontop);
  70. }
  71. calTop(positiontop,scrollTop,browseheight,cwinwidthheight);
  72. var scrollTimeout;
  73. $(window).scroll(function() {
  74. clearTimeout(scrollTimeout);
  75. scrollTimeout = setTimeout(function() { //延時處理
  76. var browserwidth = $(window).width();
  77. var browserheight = $(window).height();
  78. var scrollLeft = $(window).scrollLeft();
  79. var scrollTop = $(windwo).scrollTop();
  80. calLeft(currentwin.data("positionleft"),scrollLeft,browsewidth,cwinwidth);
  81. calTp[(currentwin.data("positiontop"),scrollLeft,browsheight,cwinheight);
  82. currentwin.animate({
  83. left: left,
  84. top: top;
  85. },300);
  86. },300);
  87. });
  88. $(window).resize(function(){
  89. var browserwidth = $(window).width();
  90. var browserheight = $(window).height();
  91. var scrollLeft = $(window).scrollLeft();
  92. var scrollTop = $(windwo).scrollTop();
  93. calLeft(currentwin.data("positionleft"),scrollLeft,browsewidth,cwinwidth);
  94. calTp[(currentwin.data("positiontop"),scrollLeft,browsheight,cwinheight);
  95. currentwin.animate({
  96. left: left,
  97. top: top;
  98. },300);
  99. });
  100. currentwin.css("left",left).css("top",top);
  101. currentwin.children(".title").children("img").click(function(){
  102. if(!hidefunc) {
  103. currentwin.hide("slow");
  104. }else {
  105. hidefunc();
  106. }
  107. });
  108. return currentwin; //返回當前對象,以便可以級聯的執行其他方法
  109. }
  110. }
Copyright © Linux教程網 All Rights Reserved