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


Posted in jQuery onDecember 11, 2018

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

效果如图:

 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.3water.com/code/HtmlJsRun

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

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

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

jQuery 相关文章推荐
jQuery插件FusionCharts绘制的3D环饼图效果示例【附demo源码】
Apr 02 jQuery
jQuery插件FusionCharts绘制2D环饼图效果示例【附demo源码】
Apr 10 jQuery
jQuery用noConflict代替$的实现方法
Apr 12 jQuery
jquery.uploadView 实现图片预览上传功能
Aug 10 jQuery
jquery如何实现点击空白处隐藏元素
Dec 05 jQuery
jquery引入外部CDN 加载失败则引入本地jq库
May 23 jQuery
jQuery阻止事件冒泡实例分析
Jul 03 jQuery
jquery ajax加载数据前台渲染方式 不用for遍历的方法
Aug 09 jQuery
jQuery的Ajax接收java返回数据方法
Aug 11 jQuery
jQuery选择器之基本过滤选择器用法实例分析
Feb 19 jQuery
jQuery内容选择器与表单选择器实例分析
Jun 28 jQuery
jQuery zTree树插件的使用教程
Aug 16 jQuery
jQuery实现数字自动增加或者减少的动画效果示例
Dec 11 #jQuery
JQuery实现ajax请求的示例和注意事项
Dec 10 #jQuery
jQuery选择器选中最后一个元素,倒数第二个元素操作示例
Dec 10 #jQuery
jQuery+css last-child实现选择最后一个子元素操作示例
Dec 10 #jQuery
JQuery Ajax执行跨域请求数据的解决方案
Dec 10 #jQuery
jQuery时间戳和日期相互转换操作示例
Dec 07 #jQuery
超好用的jQuery分页插件jpaginate用法示例【附源码下载】
Dec 06 #jQuery
You might like
PHP得到某段时间区间的时间戳 php定时任务
2012/04/12 PHP
PHP面向对象教程之自定义类
2014/06/10 PHP
Laravel中扩展Memcached缓存驱动实现使用阿里云OCS缓存
2015/02/10 PHP
PHP中$_SERVER使用说明
2015/07/05 PHP
分享五个PHP7性能优化提升技巧
2015/12/07 PHP
PHP+MySQL实现的简单投票系统实例
2016/02/24 PHP
PHP实现一维数组与二维数组去重功能示例
2018/05/24 PHP
php实现表单提交上传文件功能
2018/05/28 PHP
Laravel中如何轻松容易的输出完整的SQL语句
2020/07/26 PHP
jquery之Document元素选择器篇
2008/08/14 Javascript
js输出阴历、阳历、年份、月份、周示例代码
2014/01/29 Javascript
For循环中分号隔开的3部分的执行顺序探讨
2014/05/27 Javascript
Jquery实现瀑布流布局(备有详细注释)
2015/07/31 Javascript
Jquery 全选反选实例代码
2015/11/19 Javascript
js贪吃蛇游戏实现思路和源码
2016/04/14 Javascript
深入理解JavaScript内置函数
2016/06/03 Javascript
深入理解JavaScript中的尾调用(Tail Call)
2017/02/07 Javascript
jsonp跨域请求实现示例
2017/03/13 Javascript
vue.js父组件使用外部对象的方法示例
2017/04/25 Javascript
node 版本切换的实现
2020/02/02 Javascript
JQuery实现折叠式菜单的详细代码
2020/06/03 jQuery
[02:32]【DOTA2亚洲邀请赛】iceice,梦开始的地方
2017/03/13 DOTA
Django如何配置mysql数据库
2018/05/04 Python
使用anaconda的pip安装第三方python包的操作步骤
2018/06/11 Python
Python完成毫秒级抢淘宝大单功能
2019/06/06 Python
Django app配置多个数据库代码实例
2019/12/17 Python
Python 如何展开嵌套的序列
2020/08/01 Python
python安装sklearn模块的方法详解
2020/11/28 Python
python多线程和多进程关系详解
2020/12/14 Python
员工拓展培训方案
2014/02/15 职场文书
上课打牌的检讨书
2014/02/15 职场文书
我的中国梦演讲稿500字
2014/08/19 职场文书
2014年“向国旗敬礼”网上签名寄语活动方案
2014/09/27 职场文书
2016继续教育培训学习心得体会
2016/01/19 职场文书
HDFS免重启挂载新磁盘
2022/04/06 Servers
Go语言的协程上下文的几个方法和用法
2022/04/11 Golang