首页 > 语言 > JavaScript > 正文

JS实现带缓冲效果打开、关闭、移动一个层的方法

2024-05-06 16:19:43
字体:大 中 小
来源:转载
供稿:网友

这篇文章主要介绍了JS实现带缓冲效果打开、关闭、移动一个层的方法,涉及javascript鼠标事件及页面元素操作技巧,需要的朋友可以参考下

本文实例讲述了JS带缓冲效果打开、关闭、移动一个层的方法。分享给大家供大家参考。具体实现方法如下:

 

 
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
  2. "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
  3. <html xmlns="http://www.w3.org/1999/xhtml" lang="gb2312"> 
  4. <head> 
  5. <title>JavaScript缓冲打开层</title> 
  6. <meta http-equiv="Content-Type" content="text/html; charset=gb2312"/> 
  7. <style type="text/css"> 
  8. * { 
  9. margin:0; padding:0; 
  10. } 
  11. body { 
  12. margin:5px auto; text-align:center; background:#f0f0f0; 
  13. } 
  14. #d1 { 
  15. position:absolute; top:20px; 
  16. left:20px; width:100px; height:60px; 
  17. border:1px solid #808; 
  18. } 
  19. #d2 { 
  20. position:absolute; top:100px; 
  21. left:20px; width:100px; height:60px; 
  22. border:1px solid #808; 
  23. } 
  24. #open1, #close1, #open2, #close2 { 
  25. cursor:pointer; background:#ccf; margin:5px; 
  26. } 
  27. #open1, #open2 { 
  28. display:block; 
  29. } 
  30. #close1, #close2 { 
  31. display:none; 
  32. } 
  33. </style> 
  34. </head> 
  35. <body> 
  36. <div id="d1"> 
  37. 移动位置 
  38. <span id="open1" onclick="fo1()">Open</span> 
  39. <span id="close1" onclick="fc1()">Close</span> 
  40. </div> 
  41. <div id="d2"> 
  42. 改变大小 
  43. <span id="open2" onclick="fo2()">Open</span> 
  44. <span id="close2" onclick="fc2()">Close</span> 
  45. </div> 
  46. <div id="debug">AAA</div> 
  47. <script type="text/javascript"> 
  48. //<[CDATA[ 
  49. var sl = 20; //初始left值 
  50. var el = 500; //结束left值 
  51. var sw = 100;//初始width值 
  52. var ew = 580;//结束width值 
  53. var p = 10; //缓冲变量 
  54. var t = 20; //时间变量 
  55. var d1 = document.getElementById('d1'); 
  56. var d2 = document.getElementById('d2'); 
  57. var debug = document.getElementById('debug'); 
  58. var open1 = document.getElementById('open1'); 
  59. var close1 = document.getElementById('close1'); 
  60. var open2 = document.getElementById('open2'); 
  61. var close2 = document.getElementById('close2'); 
  62. function fo1() { 
  63. var cl = parseInt(getStyle(d1,'left')); 
  64. //当前left值 
  65. if (cl<el) { 
  66. d1.style.left = cl + Math.ceil((el-cl)/p) + 'px'; 
  67. //当前值+缓冲增量 
  68. debug.innerHTML = getStyle(d1,'left'); 
  69. //cl + 'px'; 
  70. setTimeout('fo1()', t); 
  71. } else { 
  72. d1.style.left = el + 'px'; 
  73. open1.style.display = 'none'; 
  74. close1.style.display = 'block'; 
  75. } 
  76. } 
  77. function fc1() { 
  78. var cl = parseInt(getStyle(d1,'left')); 
  79. //当前left值 
  80. if (cl>sl) { 
  81. d1.style.left = cl - Math.ceil((cl-sl)/p) + 'px'; 
  82. //当前值-缓冲增量 
  83. debug.innerHTML = getStyle(d1,'left'); 
  84. //cl + 'px'; 
  85. setTimeout('fc1()', t); 
  86. } else { 
  87. d1.style.left = sl + 'px'; 
  88. open1.style.display = 'block'; 
  89. close1.style.display = 'none'; 
  90. } 
  91. } 
  92. function fo2() { 
  93. var cw = parseInt(getStyle(d2,'width')); 
  94. //当前width值 
  95. if (cw<ew) { 
  96. d2.style.width = cw + Math.ceil((ew-cw)/p) + 'px'; 
  97. //当前值+缓冲增量 
  98. debug.innerHTML = getStyle(d2,'width'); 
  99. //cw + 'px'; 
  100. setTimeout('fo2()', t); 
  101. } else { 
  102. d2.style.width = ew + 'px'; 
  103. open2.style.display = 'none'; 
  104. close2.style.display = 'block'; 
  105. } 
  106. } 
  107. function fc2() { 
  108. var cw = parseInt(getStyle(d2,'width')); 
  109. //当前width值 
  110. if (cw>sw) { 
  111. d2.style.width = cw - Math.ceil((cw-sw)/p) + 'px'; 
  112. //当前值-缓冲增量 
  113. debug.innerHTML = getStyle(d2,'width'); 
  114. //cw + 'px'; 
  115. setTimeout('fc2()', t); 
  116. } else { 
  117. d2.style.width = sw + 'px'; 
  118. open2.style.display = 'block'; 
  119. close2.style.display = 'none'; 
  120. } 
  121. } 
  122. function getStyle( elem, name ) {  
  123. if (elem.style[name]) { return elem.style[name]; }  
  124. else if (elem.currentStyle) { return elem.currentStyle[name]; }  
  125. else if (document.defaultView && document.defaultView.getComputedStyle){ 
  126. name = name.replace(/([A-Z])/g,"-$1");  
  127. name = name.toLowerCase();  
  128. var s = document.defaultView.getComputedStyle(elem,"");  
  129. return s && s.getPropertyValue(name);  
  130. }  
  131. else { return null; }  
  132. } 
  133. //]]> 
  134. </script> 
  135. </body> 
  136. </html> 

希望本文所述对大家的javascript程序设计有所帮助。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

图片精选