首页 > 编程 > JavaScript > 正文

jQuery实现的模仿雨滴下落动画效果

2019-11-19 12:21:54
字体:
来源:转载
供稿:网友

本文实例讲述了jQuery实现的模仿雨滴下落动画效果。分享给大家供大家参考,具体如下:

效果如图:

 

实现思路:定时器每隔x秒生成宽高、下落速度(即动画执行时间)、left随机的div。

1.CSS:

body{  overflow: hidden;/*这是为了防止出现滚动条*/}.com{  border-radius: 0 50% 50% 50%;  background: skyblue;  transform: rotate(45deg);  position: absolute;  top: 0;}

2.JS:

$(function(){  var obj={    maxW:100,//最大宽度    minW:10,//最小宽度    maxSpeed:10000,//最大速度,单位ms    creat:400//创建雨滴个数的快慢,单位ms  }  rain(obj)})function rain(obj){  var maxW=obj.maxW;  var minW=obj.minW;  var maxSpeed=obj.maxSpeed;  var time=obj.creat;  var maxLeft=$(window).width();  var time1;  var j=0;  time1=setInterval(function(){    var width=Math.random()*maxW;//随机宽度    width=width.toFixed(2);    if(width<minW){      width=minW;    }    var left=Math.random()*maxLeft-width;//随机left值    left=left.toFixed(2);    if(left<0){      left=0;    }    j++;    var speed=Math.random()*maxSpeed;//随机速度    var item='<div class="com rain'+j+'" style="left:'+left+'px;width:'+width+'px;height:'+width+'px"></div>';//创建雨滴    $("body").append(item);    move($(".rain"+j),speed);//雨滴移动  },time)}function move(op,speed){  var winH=$(window).height();  var maxH=winH+op.height();//雨滴下落的高度,页面高度加上自身高度就能看到完全落到最底部  op.animate({    "top":maxH+"px"  },speed,function(){    op.remove();//删除该雨滴  });}

本来最开始想计算雨滴left和下落高度的最大值,以免出现滚动条,但是后来想直接body加个overflow:hidden不是更好么,省去多余的代码,效果还一样。

除了用JS实现,还可以用canvas来实现。

感兴趣的朋友可以使用如下工具测试上述代码运行效果:

在线HTML/CSS/JavaScript代码运行工具:
http://tools.VeVB.COm/code/HtmlJsRun

在线HTML/CSS/JavaScript前端代码调试运行工具:
http://tools.VeVB.COm/code/WebCodeRun

更多关于jQuery相关内容还可查看本站专题:《jQuery动画与特效用法总结》、《jQuery切换特效与技巧总结》、《jQuery扩展技巧总结》、《jQuery常用插件及用法总结》、《jQuery拖拽特效与技巧总结》、《jQuery表格(table)操作技巧汇总》、《jQuery常见经典特效汇总》及《jquery选择器用法总结

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

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