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 ajax请求struts action实现异步刷新
Apr 19 jQuery
JQuery form表单提交前验证单选框是否选中、删除记录时验证经验总结(整理)
Jun 09 jQuery
jQuery扩展_动力节点Java学院整理
Jul 05 jQuery
jQuery EasyUI的TreeGrid查询功能实现方法
Aug 08 jQuery
关于jQuery里prev()的简单操作代码
Oct 27 jQuery
简单实现jquery隔行变色
Nov 09 jQuery
jquery+css3实现熊猫tv导航代码分享
Feb 12 jQuery
jQuery实现的淡入淡出与滑入滑出效果示例
Apr 18 jQuery
jquery拖拽自动排序插件使用方法详解
Jul 20 jQuery
jQuery+ajax实现用户登录验证
Sep 13 jQuery
jQuery实现查看图片功能
Dec 01 jQuery
jquery实现广告上下滚动效果
Mar 04 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 fckeditor 调用的函数
2009/06/21 PHP
下拉列表多级联动dropDownList示例代码
2013/06/27 PHP
简单分析ucenter 会员同步登录通信原理
2014/08/25 PHP
PHP自定义错误用法示例
2016/09/28 PHP
关于PHP5.6+版本“No input file specified”问题的解决
2019/12/11 PHP
使用闭包对setTimeout进行简单封装避免出错
2013/07/10 Javascript
使用js正则控制input标签只允许输入的值
2013/07/29 Javascript
JavaScript的null和undefined区别示例介绍
2014/09/15 Javascript
JavaScript中的Math.LOG2E属性使用详解
2015/06/14 Javascript
js下拉选择框与输入框联动实现添加选中值到输入框的方法
2015/08/17 Javascript
跟我学习javascript的严格模式
2015/11/16 Javascript
基于jquery实现轮播特效
2016/04/22 Javascript
jQuery通过deferred对象管理ajax异步
2016/05/20 Javascript
js基于cookie方式记住返回页面用法示例
2016/05/27 Javascript
原生js实现放大镜
2017/02/20 Javascript
jquery实现超简单的瀑布流布局【推荐】
2017/03/08 Javascript
bootstrap table单元格新增行并编辑
2017/05/19 Javascript
vue-router的两种模式的区别
2019/05/30 Javascript
ES11新增的这9个新特性,你都掌握了吗
2020/10/15 Javascript
一篇不错的Python入门教程
2007/02/08 Python
基于Python中单例模式的几种实现方式及优化详解
2018/01/09 Python
python使用KNN算法手写体识别
2018/02/01 Python
python 求1-100之间的奇数或者偶数之和的实例
2019/06/11 Python
VSCode中自动为Python文件添加头部注释
2019/11/14 Python
Python 代码调试技巧示例代码
2020/08/11 Python
在PyCharm中安装PaddlePaddle的方法
2021/02/05 Python
优秀员工自荐信范文
2013/10/05 职场文书
精彩的推荐信范文
2013/11/26 职场文书
历史专业个人求职信范文
2013/12/07 职场文书
爱护公共设施的标语
2014/06/24 职场文书
纪检干部现实表现材料
2014/08/21 职场文书
财务审计整改报告
2014/11/06 职场文书
2014年服务员个人工作总结
2014/12/23 职场文书
2019年英语版感谢信(8篇)
2019/09/29 职场文书
Python Pycharm虚拟下百度飞浆PaddleX安装报错问题及处理方法(亲测100%有效)
2021/05/24 Python
浅谈哪个Python库才最适合做数据可视化
2021/06/28 Python