首页 > 语言 > JavaScript > 正文

JS动画效果打开、关闭层的实现方法

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

这篇文章主要介绍了JS动画效果打开、关闭层的实现方法,可实现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"> 
  4. <head> 
  5. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
  6. <title>层展开、关闭</title> 
  7. <style type="text/css"> 
  8. #main{ 
  9. width:500px; margin:100px; 
  10. height:500px;border:1px solid red 
  11. } 
  12. #test{ 
  13. border:1px solid red; 
  14. display:none;width:10px; 
  15. height:10px; background:yellow 
  16. } 
  17. </style> 
  18. </head> 
  19. <body> 
  20. <input type="button" value="打开" id="bt" /> 
  21. <input type="button" value="关闭" id="bt1" /> 
  22. <div id="main"><div id="test"></div> 
  23. </div> 
  24. </body> 
  25. </html> 
  26. <script type="text/javascript"> 
  27. function $ (o) { 
  28. return document.getElementById(o); 
  29. } 
  30. function XslideDown(obj,type,mX,num) { 
  31. if(!type){return;} 
  32. try{ 
  33. var type1=type=="height"?"marginTop":"marginLeft"; 
  34. var type2=type=="height"?"top":"left"; 
  35. XSetCss(obj,[type1,XgetOffset(obj)[type2]+"px"]); 
  36. XSetCss(obj,[type,XgetOffset(obj)[type]+num+"px"]); 
  37. if(XgetOffset(obj)[type]<mX){ 
  38. setTimeout(function(){XslideDown(obj,type,mX,num);},10);  
  39. } 
  40. else{ 
  41. XSetCss(obj,[type,mX]) 
  42. } 
  43. } 
  44. catch(e){} 
  45. } 
  46. function XslideUp(obj,type,mX,num) { 
  47. if(!type){return;} 
  48. try{ 
  49. var type1=type=="height"?"marginTop":"marginLeft"; 
  50. var type2=type=="height"?"top":"left"; 
  51. XSetCss(obj,[type1,XgetOffset(obj)[type2]+"px"]); 
  52. XSetCss(obj,[type,XgetOffset(obj)[type]-num+"px"]); 
  53. if(XgetOffset(obj)[type]>mX){  
  54. setTimeout(function(){XslideUp(obj,type,mX,num);},1);  
  55. } 
  56. else{ 
  57. XSetCss(obj,[type,mX]) 
  58. obj.style.display="none"; 
  59. } 
  60. } 
  61. catch(e){} 
  62. } 
  63. function XSetCss(obj,cssArgs){ 
  64. if(arguments.length==2) 
  65. {  
  66. if(cssArgs.constructor==Object){ 
  67. for(var o in cssArgs) 
  68. { 
  69. if(obj.style[o]!="undefiend") 
  70. { 
  71. obj.style[o]=cssArgs[o];  
  72. }  
  73. }  
  74. } 
  75. if(cssArgs.constructor==Array&&cssArgs.length==2){ 
  76. obj.style[cssArgs[0]]=cssArgs[1];  
  77. } 
  78. } 
  79. } 
  80. function XgetOffset (obj) { 
  81. return { 
  82. height:obj.offsetHeight, 
  83. width:obj.offsetWidth, 
  84. top:parseInt((obj.parentNode.offsetHeight-obj.offsetHeight)/2), 
  85. left:parseInt((obj.parentNode.offsetWidth-obj.offsetWidth)/2) 
  86. } 
  87. } 
  88. function XopenDiv(o){ 
  89. o.style.display="block"; 
  90. XslideDown(o,"width",400,10); 
  91. XslideDown(o,"height",400,10); 
  92. } 
  93. function XcloseDiv(o){ 
  94. XslideUp(o,"width",10,10); 
  95. XslideUp(o,"height",10,10); 
  96. } 
  97. $("bt").onclick=function(){ 
  98. XopenDiv($("test")) 
  99. } 
  100. $("bt1").onclick=function(){ 
  101. XcloseDiv($("test")) 
  102. } 
  103. </script> 

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

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

图片精选