JS實現(xiàn)文字掉落效果的方法
本文實例講述了JS實現(xiàn)文字掉落效果的方法。分享給大家供大家參考。具體實現(xiàn)方法如下:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ru"> <head> <title></title> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <script src="jquery-1.6.2.min.js" type="text/javascript"></script> <style type="text/css"> .canvas{ width:500px; height:500px; position:relative; } </style> </head> <body> <div> <input type="button" onclick="javascript:falling.init();" value="GO" /> </div> <div class="canvas" id="canvas"></div> <script type="text/javascript"> /* *墜落效果 */ function Falling(){ 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"]; this.canvas=$("#canvas"); this.step=15; this.freq=10; this.height=500; this.width=500; this.si=null; } Falling.prototype={ fallingAction:function(dom){ var self=this; var freqs=[10,15,20];//每次下落的距離 var disS=[];//記錄所有dom的當前距離 var disPerFreqS=[];//每個dom的 var targetDis=500; var domCssTopS=[];//所有dom的top屬性 var successDom=[];//記錄哪些dom已經(jīng)結(jié)束運動 var successCount=0;//有多少個dom已經(jīng)結(jié)束 var total=dom.length; var freqMarkLength=freqs.length; for(var i=0,j=dom.length;i<j;i++){ domCssTopS[i]=dom[i].position().top; disS[i]=0; disPerFreqS[i]=freqs[parseInt(Math.random()*freqMarkLength)]; } self.si=setInterval(function(){ if(successCount>=total){ clearInterval(self.si); } for(var i=0,j=dom.length;i<j;i++){ if(typeof(successDom[i])!="undefined" && successDom[i]=="ok"){ continue; } disS[i] += disPerFreqS[i]; if(disS[i] >= targetDis){ dom[i].css("top", targetDis+domCssTopS[i]); successDom[i]="ok"; successCount++;; }else{ dom[i].css("top", disS[i]+domCssTopS[i]); } } },self.freq); }, init:function(){ var self=this; self.canvas.html(''); var dom=[]; var l=0; var t=0; var tempDom=$("<div style='position;absolute;left:-100000;visibility:hidden'></div>").appendTo($("body")); for(var i=0,j=self.dict.length;i<j;i++){ dom[i]=$("<span style='position:absolute'>"+self.dict[i]+"</span>").appendTo(tempDom); var domWidth=dom[i].width(); var domHeight=dom[i].height(); if(t<self.height){ if(l<self.width){ if(domWidth+l<=self.width){ dom[i].css({"top":t,"left":l}); self.canvas.append(dom[i]); l += dom[i].width(); }else{ if(domHeight+t<=self.height){ t=t+domHeight; dom[i].css({"top":t,"left":0}); self.canvas.append(dom[i]); l = dom[i].width(); }else{ break;//到極限了 } } }else{ if(domHeight+t<=self.height){ t=t+domHeight; l=0; dom[i].css({"top":t,"left":l}); self.canvas.append(dom[i]); }else{ break;//到極限了 } } }//else極限 } /* for(var i=0,l=self.dict.length;i<l;i++){ self.fallingAction(dom[i]); } */ self.fallingAction(dom); } } var falling=new Falling(); falling.init(); </script> </body> </html>
希望本文所述對大家的javascript程序設(shè)計有所幫助。
相關(guān)文章
JavaScript實現(xiàn)DIV層拖動及動態(tài)增加新層的方法
這篇文章主要介紹了JavaScript實現(xiàn)DIV層拖動及動態(tài)增加新層的方法,設(shè)計javascript操作div層的拖動與增加的相關(guān)技巧,需要的朋友可以參考下2015-05-05JavaScript實現(xiàn)頁面動態(tài)驗證碼的實現(xiàn)示例
這篇文章主要介紹了JavaScript實現(xiàn)頁面動態(tài)驗證碼的實現(xiàn)示例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2021-03-03javascript利用控件對windows的操作實現(xiàn)原理與應(yīng)用
假如要發(fā)送漢字的聊天框的內(nèi)容的話,我們也要從windows消息機制下手,先找到聊天消息的句柄(可以利用findwindow函數(shù)或者用spy工具哈),然后在找到上面的聊天框的句柄,接著我們就可以想這個句柄發(fā)送WM_SETTEXT的消息了2012-12-12javascript 客戶端驗證上傳圖片的大小(兼容IE和火狐)
做web開發(fā)的哥們都會遇到批量上傳圖片的需求,相信大家都會遇到這樣的問題,當選擇好要上傳的圖片,提交服務(wù)器后,發(fā)現(xiàn)有圖片的大小超過了系統(tǒng)允許的范圍。2009-08-08webpack打包中path.resolve(__dirname, 'dist')的含義解
這篇文章主要介紹了webpack打包中path.resolve(__dirname, 'dist')的含義解析,path:path.resolve(__dirname, 'dist')就是在打包之后的文件夾上拼接了一個文件夾,在打包時,直接生成,本文給大家講解的非常詳細,需要的朋友可以參考下2023-05-05基于HTML模板和JSON數(shù)據(jù)的JavaScript交互(移動端)
這篇文章主要介紹了基于HTML模板和JSON數(shù)據(jù)的JavaScript交互(移動端)的相關(guān)資料,需要的朋友可以參考下2016-04-04ES6通過babel轉(zhuǎn)碼使用webpack使用import關(guān)鍵字
這篇文章主要介紹了es6通過babel轉(zhuǎn)碼還需要使用webpack才可以使用import關(guān)鍵字嗎的相關(guān)資料,需要的朋友可以參考下2016-12-12