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日程管理控件glDatePicker用法详解
Mar 29 jQuery
jquery点赞功能实现代码 点个赞吧!
May 29 jQuery
使用jQuery.Pin垂直滚动时固定导航
May 24 jQuery
jQuery复合事件结合toggle()方法的用法示例
Jun 10 jQuery
jquery实现左右轮播切换效果
Jan 01 jQuery
用jquery获取select标签中选中的option值及文本的示例
Jan 25 jQuery
jQuery实现的点击图片居中放大缩小功能示例
Jan 16 jQuery
AJAX在JQuery中的应用详解
Jan 30 jQuery
jquery+ajax实现上传图片并显示上传进度功能【附php后台接收】
Jun 06 jQuery
jQuery实现滑动星星评分效果(每日分享)
Nov 13 jQuery
jquery制作的移动端购物车效果完整示例
Feb 24 jQuery
jquery实现手风琴案例
May 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递归算法和应用方法介绍
2013/04/15 PHP
分割GBK中文遭遇乱码的解决方法
2013/08/09 PHP
PHP大文件分割上传 PHP分片上传
2017/08/28 PHP
完美解决AJAX跨域问题
2013/11/01 Javascript
JS对img标签进行优化使用onerror显示默认图像
2014/04/24 Javascript
$.extend 的一个小问题
2015/06/18 Javascript
微信页面倒计时代码(解决safari不兼容date的问题)
2016/12/13 Javascript
vue.js单页面应用实例的简单实现
2017/04/10 Javascript
使用JS实现气泡跟随鼠标移动的动画效果
2017/09/16 Javascript
微信小程序登录按钮遮罩浮层效果的实现方法
2018/12/16 Javascript
微信小程序和H5页面间相互跳转代码实例
2019/09/19 Javascript
ElementUI Tree 树形控件的使用并给节点添加图标
2020/02/27 Javascript
js实现拖拽元素选择和删除
2020/08/25 Javascript
Python程序设计入门(4)模块和包
2014/06/16 Python
Python的Tornado框架异步编程入门实例
2015/04/24 Python
python中正则的使用指南
2016/12/04 Python
Python简单实现查找一个字符串中最长不重复子串的方法
2018/03/26 Python
Python 机器学习库 NumPy入门教程
2018/04/19 Python
Python内置数据类型list各方法的性能测试过程解析
2020/01/07 Python
python opencv实现信用卡的数字识别
2020/01/12 Python
Pytorch实现LSTM和GRU示例
2020/01/14 Python
关于tf.reverse_sequence()简述
2020/01/20 Python
python GUI库图形界面开发之PyQt5窗口类QMainWindow详细使用方法
2020/02/26 Python
django 数据库 get_or_create函数返回值是tuple的问题
2020/05/15 Python
Django解决frame拒绝问题的方法
2020/12/18 Python
利用python实现汉诺塔游戏
2021/03/01 Python
美国家用电器和电子产品商店:Abt
2016/09/06 全球购物
秋季运动会广播稿大全
2014/02/17 职场文书
大学生自我评价200字(4篇)
2014/09/17 职场文书
房屋租赁协议书(标准版)
2014/10/02 职场文书
群众路线查摆问题整改措施
2014/10/10 职场文书
初中生300字旷课检讨书
2014/11/19 职场文书
长城导游词300字
2015/01/30 职场文书
驳回起诉民事裁定书
2015/05/19 职场文书
企业管理制度设计时要注意的几种“常见病”!
2019/04/19 职场文书
mysql备份策略的实现(全量备份+增量备份)
2021/07/07 MySQL