首页 > 语言 > 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. #test{ 
  12. border:1px solid red; 
  13. display:none;width:10px; 
  14. height:10px; background:yellow 
  15. </style> 
  16. </head> 
  17. <body> 
  18. <input type="button" value="打开" id="bt" /> 
  19. <input type="button" value="关闭" id="bt1" /> 
  20. <div id="main"><div id="test"></div> 
  21. </div> 
  22. </body> 
  23. </html> 
  24. <script type="text/javascript"
  25. function $ (o) { 
  26. return document.getElementById(o); 
  27. function XslideDown(obj,type,mX,num) { 
  28. if(!type){return;} 
  29. try
  30. var type1=type=="height"?"marginTop":"marginLeft"
  31. var type2=type=="height"?"top":"left"
  32. XSetCss(obj,[type1,XgetOffset(obj)[type2]+"px"]); 
  33. XSetCss(obj,[type,XgetOffset(obj)[type]+num+"px"]); 
  34. if(XgetOffset(obj)[type]<mX){ 
  35. setTimeout(function(){XslideDown(obj,type,mX,num);},10);  
  36. else
  37. XSetCss(obj,[type,mX]) 
  38. catch(e){} 
  39. function XslideUp(obj,type,mX,num) { 
  40. if(!type){return;} 
  41. try
  42. var type1=type=="height"?"marginTop":"marginLeft"
  43. var type2=type=="height"?"top":"left"
  44. XSetCss(obj,[type1,XgetOffset(obj)[type2]+"px"]); 
  45. XSetCss(obj,[type,XgetOffset(obj)[type]-num+"px"]); 
  46. if(XgetOffset(obj)[type]>mX){  
  47. setTimeout(function(){XslideUp(obj,type,mX,num);},1);  
  48. else
  49. XSetCss(obj,[type,mX]) 
  50. obj.style.display="none"
  51. catch(e){} 
  52. function XSetCss(obj,cssArgs){ 
  53. if(arguments.length==2) 
  54. {  
  55. if(cssArgs.constructor==Object){ 
  56. for(var o in cssArgs) 
  57. if(obj.style[o]!="undefiend"
  58. obj.style[o]=cssArgs[o];  
  59. }  
  60. }  
  61. if(cssArgs.constructor==Array&&cssArgs.length==2){ 
  62. obj.style[cssArgs[0]]=cssArgs[1];  
  63. function XgetOffset (obj) { 
  64. return { 
  65. height:obj.offsetHeight, 
  66. width:obj.offsetWidth, 
  67. top:parseInt((obj.parentNode.offsetHeight-obj.offsetHeight)/2), 
  68. left:parseInt((obj.parentNode.offsetWidth-obj.offsetWidth)/2) 
  69. function XopenDiv(o){ 
  70. o.style.display="block"
  71. XslideDown(o,"width",400,10); 
  72. XslideDown(o,"height",400,10); 
  73. function XcloseDiv(o){ 
  74. XslideUp(o,"width",10,10); 
  75. XslideUp(o,"height",10,10); 
  76. $("bt").onclick=function(){ 
  77. XopenDiv($("test")) 
  78. $("bt1").onclick=function(){ 
  79. XcloseDiv($("test")) 
  80. </script> 

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

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

图片精选