这篇文章主要介绍了JS实现文字掉落效果的方法,可实现文字往下掉落最终排序正常显示的效果,具有一定参考借鉴价值,需要的朋友可以参考下
本文实例讲述了JS实现文字掉落效果的方法。分享给大家供大家参考。具体实现方法如下:
- <!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已经结束运动
- var successCount=0;//有多少个dom已经结束
- 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程序设计有所帮助。
新闻热点
疑难解答
图片精选