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


Posted in Javascript onMay 06, 2015

本文实例讲述了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程序设计有所帮助。

Javascript 相关文章推荐
jQuery 动态酷效果实现总结
Dec 27 Javascript
基于jquery的仿百度的鼠标移入图片抖动效果
Sep 17 Javascript
javascript 原型继承介绍
Aug 30 Javascript
JavaScript中的console.dir()函数介绍
Dec 29 Javascript
JS实现简单路由器功能的方法
May 27 Javascript
JavaScript用select实现日期控件
Jul 17 Javascript
详谈JavaScript的闭包及应用
Jan 17 Javascript
Bootstrap 响应式实用工具实例详解
Mar 29 Javascript
Javascript中Promise的四种常用方法总结
Jul 14 Javascript
vue-element-admin 菜单标签失效的解决方式
Nov 12 Javascript
AutoJs实现刷宝短视频的思路详解
May 22 Javascript
详解JVM系列之内存模型
Jun 10 Javascript
DOM 高级编程
May 06 #Javascript
js获得当前系统日期时间的方法
May 06 #Javascript
js字符串操作方法实例分析
May 06 #Javascript
ajax+jQuery实现级联显示地址的方法
May 06 #Javascript
javascript十六进制及二进制转化的方法
May 06 #Javascript
js拆分字符串并将分割的数据放到数组中的方法
May 06 #Javascript
Juery解决tablesorter中文排序和字符范围的方法
May 06 #Javascript
You might like
PHP多进程编程实例
2014/10/15 PHP
laravel-admin解决表单select联动时,编辑默认没选上的问题
2019/09/30 PHP
javascript监听鼠标滚轮事件浅析
2014/06/05 Javascript
浅析nodejs实现Websocket的数据接收与发送
2015/11/19 NodeJs
jquery 全选、全不选、反选效果的实现代码【推荐】
2016/05/05 Javascript
深入理解逻辑表达式的用法 与或非的用法
2016/06/06 Javascript
jQuery使用方法
2017/02/04 Javascript
AngularJS表单验证功能分析
2017/05/26 Javascript
Windows下Node爬虫神器Puppeteer安装记
2019/01/09 Javascript
vue cli 3.x 项目部署到 github pages的方法
2019/04/17 Javascript
JavaScript实现的开关灯泡点击切换特效示例
2019/07/08 Javascript
vue实现下拉加载其实没那么复杂
2019/08/13 Javascript
layerui代码控制tab选项卡,添加,关闭的实例
2019/09/04 Javascript
微信小程序按钮点击动画效果的实现
2019/09/04 Javascript
Linux下为不同版本python安装第三方库
2016/08/31 Python
Python实现自动添加脚本头信息的示例代码
2016/09/02 Python
Python基于identicon库创建类似Github上用的头像功能
2017/09/25 Python
Flask解决跨域的问题示例代码
2018/02/12 Python
Python实现的线性回归算法示例【附csv文件下载】
2018/12/29 Python
Python类中self参数用法详解
2020/02/13 Python
PyQt5事件处理之定时在控件上显示信息的代码
2020/03/25 Python
解决Python在导入文件时的FileNotFoundError问题
2020/04/10 Python
Jupyter安装拓展nbextensions及解决官网下载慢的问题
2021/03/03 Python
AmazeUI 模态窗口的实现代码
2020/08/18 HTML / CSS
购买限量版收藏品、珠宝和礼品:Bradford Exchange
2016/09/23 全球购物
瑞典在互联网上最大的宠物商店:Animail
2020/10/31 全球购物
四川internet信息高速公路(C#)笔试题
2012/02/29 面试题
高校毕业生登记表自我鉴定
2013/11/03 职场文书
捐赠仪式主持词
2014/03/19 职场文书
厂区绿化方案
2014/05/08 职场文书
幼儿园教师节演讲稿
2014/09/03 职场文书
2015大学生党员自我评价范文
2015/03/03 职场文书
爱心捐赠活动简讯
2015/07/20 职场文书
2016年“我们的节日·中秋节”活动总结
2016/04/05 职场文书
php 原生分页
2021/04/01 PHP
教你怎么用python爬取爱奇艺热门电影
2021/05/20 Python