放大缩小容器:仿动画

来源:互联网 发布:潮流计算软件 编辑:程序博客网 时间:2024/05/16 07:13
<script type="text/javascript"><!--google_ad_client = "pub-4490194096475053";/* 内容页,300x250,第一屏 */google_ad_slot = "3685991503";google_ad_width = 300;google_ad_height = 250;// --></script><script src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type="text/javascript"></script>
  1. <html> 
  2. <head> 
  3. <meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> 
  4. <title>放大缩小容器:仿动画</title> 
  5. <style type="text/css"> 
  6. *{margin:0;padding:0;} 
  7. body { padding:1em; } 
  8. h2 { font-size:2em; } 
  9. div { display:inline-block; width:10em; padding:.5em; margin-bottom:1em; overflow:hidden; background:#eee; text-align:center; font-size:1em; } 
  10. p#text { position:absolute; right:10px; top:10px; } 
  11. </style> 
  12. </head> 
  13. <body> 
  14. <p id="text"></p> 
  15. <div id="box1" onmouseover="pr_box('box1',150);" onmouseout="pr_box('box1',100);"> 
  16. <h2>标题</h2> 
  17. <p>测试鼠标滑动效果</p> 
  18. </div> 
  19. <div id="box2" onmouseover="pr_box('box2',150);" onmouseout="pr_box('box2',100);"> 
  20. <h2>标题</h2> 
  21. <p>测试鼠标滑动效果</p> 
  22. </div> 
  23. <div id="box3" onmouseover="pr_box('box3',150);" onmouseout="pr_box('box3',100);"> 
  24. <h2>标题</h2> 
  25. <p>测试鼠标滑动效果</p> 
  26. </div> 
  27. <div id="box4" onmouseover="pr_box('box4',150);" onmouseout="pr_box('box4',100);"> 
  28. <h2>标题</h2> 
  29. <p>测试鼠标滑动效果</p> 
  30. </div> 
  31. </body> 
  32. <script type="text/javascript"> 
  33. function getDefaultStyle(obj,attribute){ //返回最终样式函数,兼容IE和DOM,设置参数:元素对象、样式特性 
  34. return obj.currentStyle?obj.currentStyle[attribute]:document.defaultView.getComputedStyle(obj,false)[attribute]; 
  35. function pr_box(id,e){ 
  36. clearInterval(document.getElementById(id).maxmin); 
  37. var obj=document.getElementById(id); 
  38. var cfont=getDefaultStyle(obj,"fontSize");// 得到默认的大小:附单位 
  39. var cp=cfont.replace(/[0-9]|[/.]/g,"");// 得到默认的单位 
  40. var fsize=parseFloat(cfont);// 得到默认的大小数值 
  41. var s=10;// 运动速度 
  42. if(!obj.fsizeTmpe){// 存储默认大小数值 
  43. obj.fsizeTmpe=fsize; 
  44. if(!objfont){// 如果没有设置当前大小,则赋予其默认大小 
  45. obj.style.fontSize = cfont
  46. var e = obj.fsizeTmpe*e/100;// 需要改变到的大小数值 
  47. var objfont = parseFloat(obj.style.fontSize);// 得到当前的大小 
  48. if(e < obj.fsizeTmpe){obj.maxmin = setInterval(function(){pr_min(obj,e,cp)},s);} 
  49. if(e > obj.fsizeTmpe){obj.maxmin = setInterval(function(){pr_max(obj,e,cp)},s);} 
  50. if(e == obj.fsizeTmpe){ 
  51. if(objfont < obj.fsizeTmpe){ 
  52. obj.maxmin = setInterval(function(){pr_max(obj,obj.fsizeTmpe,cp)},s); 
  53. if(objfont > obj.fsizeTmpe){ 
  54. obj.maxmin = setInterval(function(){pr_min(obj,obj.fsizeTmpe,cp)},s); 
  55. function pr_max(obj,e,cp){ 
  56. if(!obj.fs){ 
  57. objobj.fs=obj.style.fontSize; 
  58. var objfont=parseFloat(obj.fs); 
  59. if(e > objfont){ 
  60. //document.getElementById("text").innerHTML+="放大 - 原始值:"+objfont+" + 递增值:"+e/10+"<br />"; 
  61. obj.fs = objfont+e/10+cp; 
  62. objobj.style.fontSize = obj.fs; 
  63. else if(e < objfont){ 
  64. obj.fs = e+cp; 
  65. objobj.style.fontSize = obj.fs; 
  66. else{clearInterval(obj.maxmin);} 
  67. function pr_min(obj,e,cp){ 
  68. if(!obj.fs){ 
  69. objobj.fs=obj.style.fontSize; 
  70. var objfont=parseFloat(obj.fs); 
  71. if(e < objfont){ 
  72. //document.getElementById("text").innerHTML+="缩小 - 原始值:"+objfont+" - 递减值:"+e/10+"<br />"; 
  73. obj.fs = objfont-e/10+cp; 
  74. objobj.style.fontSize = obj.fs; 
  75. else if(e > objfont){ 
  76. obj.fs = e+cp; 
  77. objobj.style.fontSize = obj.fs; 
  78. else{clearInterval(obj.maxmin);} 
  79. </script> 
  80. </html> 

 

http://www.corange.cn/archives/2008/10/1939.html

原创粉丝点击