首页 > 语言 > JavaScript > 正文

JS实现文字掉落效果的方法

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

这篇文章主要介绍了JS实现文字掉落效果的方法,可实现文字往下掉落最终排序正常显示的效果,具有一定参考借鉴价值,需要的朋友可以参考下

本文实例讲述了JS实现文字掉落效果的方法。分享给大家供大家参考。具体实现方法如下:

  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" 
  2. "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 
  3. <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ru"> 
  4. <head> 
  5. <title></title> 
  6. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
  7. <script src="jquery-1.6.2.min.js" type="text/javascript"></script> 
  8. <style type="text/css"> 
  9. .canvas{ 
  10. width:500px; 
  11. height:500px; 
  12. position:relative; 
  13. } 
  14. </style> 
  15. </head> 
  16. <body> 
  17. <div> 
  18. <input type="button" onclick="javascript:falling.init();" value="GO" /> 
  19. </div> 
  20. <div class="canvas" id="canvas"></div> 
  21. <script type="text/javascript"> 
  22. /* 
  23. *坠落效果 
  24. */ 
  25. function Falling(){ 
  26. this.dict=["abcd","2222","sign","next","container","content","last","break","less","than","that","absolute","relative","my","index","html","java","c#","web","javascript","php","include","shit","bull","big","smart","call","apply","callee","caller","function"]; 
  27. this.canvas=$("#canvas"); 
  28. this.step=15; 
  29. this.freq=10; 
  30. this.height=500; 
  31. this.width=500; 
  32. this.si=null; 
  33. } 
  34. Falling.prototype={ 
  35. fallingAction:function(dom){ 
  36. var self=this; 
  37. var freqs=[10,15,20];//每次下落的距离 
  38. var disS=[];//记录所有dom的当前距离 
  39. var disPerFreqS=[];//每个dom的 
  40. var targetDis=500; 
  41. var domCssTopS=[];//所有dom的top属性 
  42. var successDom=[];//记录哪些dom已经结束运动 
  43. var successCount=0;//有多少个dom已经结束 
  44. var total=dom.length; 
  45. var freqMarkLength=freqs.length; 
  46. for(var i=0,j=dom.length;i<j;i++){ 
  47. domCssTopS[i]=dom[i].position().top; 
  48. disS[i]=0; 
  49. disPerFreqS[i]=freqs[parseInt(Math.random()*freqMarkLength)]; 
  50. } 
  51. self.si=setInterval(function(){ 
  52. if(successCount>=total){ 
  53. clearInterval(self.si); 
  54. } 
  55. for(var i=0,j=dom.length;i<j;i++){ 
  56. if(typeof(successDom[i])!="undefined" && successDom[i]=="ok"){ 
  57. continue; 
  58. } 
  59. disS[i] += disPerFreqS[i]; 
  60. if(disS[i] >= targetDis){ 
  61. dom[i].css("top", targetDis+domCssTopS[i]); 
  62. successDom[i]="ok"; 
  63. successCount++;; 
  64. }else{ 
  65. dom[i].css("top", disS[i]+domCssTopS[i]); 
  66. } 
  67. } 
  68. },self.freq); 
  69. }, 
  70. init:function(){ 
  71. var self=this; 
  72. self.canvas.html(''); 
  73. var dom=[]; 
  74. var l=0; 
  75. var t=0; 
  76. var tempDom=$("<div style='position;absolute;left:-100000;visibility:hidden'></div>").appendTo($("body")); 
  77. for(var i=0,j=self.dict.length;i<j;i++){ 
  78. dom[i]=$("<span style='position:absolute'>"+self.dict[i]+"</span>").appendTo(tempDom); 
  79. var domWidth=dom[i].width(); 
  80. var domHeight=dom[i].height(); 
  81. if(t<self.height){ 
  82. if(l<self.width){ 
  83. if(domWidth+l<=self.width){ 
  84. dom[i].css({"top":t,"left":l}); 
  85. self.canvas.append(dom[i]); 
  86. l += dom[i].width(); 
  87. }else{ 
  88. if(domHeight+t<=self.height){ 
  89. t=t+domHeight; 
  90. dom[i].css({"top":t,"left":0}); 
  91. self.canvas.append(dom[i]); 
  92. l = dom[i].width(); 
  93. }else{ 
  94. break;//到极限了 
  95. } 
  96. } 
  97. }else{ 
  98. if(domHeight+t<=self.height){ 
  99. t=t+domHeight; 
  100. l=0; 
  101. dom[i].css({"top":t,"left":l}); 
  102. self.canvas.append(dom[i]); 
  103. }else{ 
  104. break;//到极限了 
  105. } 
  106. } 
  107. }//else极限 
  108. } 
  109. /* 
  110. for(var i=0,l=self.dict.length;i<l;i++){ 
  111. self.fallingAction(dom[i]); 
  112. } 
  113. */ 
  114. self.fallingAction(dom); 
  115. } 
  116. } 
  117. var falling=new Falling(); 
  118. falling.init(); 
  119. </script> 
  120. </body> 
  121. </html> 


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

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

图片精选