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 相关文章推荐
HTML5+jQuery实现搜索智能匹配功能
Mar 24 jQuery
node.js+jQuery实现用户登录注册AJAX交互
Apr 28 jQuery
jQuery Tree Multiselect使用详解
May 02 jQuery
jQuery zTree树插件动态加载实例代码
May 11 jQuery
基于jquery实现多级菜单效果
Jul 25 jQuery
基于jQuery实现图片推拉门动画效果的两种方法
Aug 26 jQuery
基于jQuery的左滑出现删除按钮的示例
Aug 29 jQuery
jquery实现侧边栏左右伸缩效果的示例
Dec 19 jQuery
jQuery实现仿京东防抖动菜单效果示例
Jul 06 jQuery
jquery层次选择器的介绍
Jan 18 jQuery
jQuery中each和js中forEach的区别分析
Feb 27 jQuery
jquery实现上传图片功能
Jun 29 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
10个实用的PHP代码片段
2011/09/02 PHP
smarty内置函数capture用法分析
2015/01/22 PHP
PHP记录和读取JSON格式日志文件
2016/07/07 PHP
php实现遍历文件夹的方法汇总
2017/03/02 PHP
php设计模式之适配器模式实例分析【星际争霸游戏案例】
2020/04/07 PHP
Ext 今日学习总结
2010/09/19 Javascript
Extjs TimeField 显示正常时间格式的代码
2011/06/28 Javascript
Jquery插件之打造自定义的select标签
2011/11/30 Javascript
jQuery Tools Dateinput使用介绍
2012/07/14 Javascript
js渐变显示渐变消失示例代码
2013/08/01 Javascript
js实现文字跟随鼠标移动而移动的方法
2015/02/28 Javascript
Angular指令之restict匹配模式的详解
2017/07/27 Javascript
dts文件中删除一个node或属性的操作方法
2018/08/05 Javascript
JS实现的input选择图片本地预览功能示例
2018/08/29 Javascript
Vue实现购物车详情页面的方法
2019/08/20 Javascript
SSM+layUI 根据登录信息显示不同的页面方法
2019/09/20 Javascript
详解Node.js使用token进行认证的简单示例
2020/05/25 Javascript
在vscode 中设置 vue模板内容的方法
2020/09/02 Javascript
[00:02]DOTA2新版本使用PA至宝后暴击展示
2014/11/19 DOTA
从零学Python之入门(三)序列
2014/05/25 Python
python检查URL是否正常访问的小技巧
2017/02/25 Python
使用Python从零开始撸一个区块链
2018/03/14 Python
python 动态生成变量名以及动态获取变量的变量名方法
2019/01/20 Python
Django结合ajax进行页面实时更新的例子
2019/08/12 Python
numpy.linalg.eig() 计算矩阵特征向量方式
2019/11/29 Python
使用TensorFlow直接获取处理MNIST数据方式
2020/02/10 Python
python中字符串的编码与解码详析
2020/12/03 Python
python 基于opencv 实现一个鼠标绘图小程序
2020/12/11 Python
挖掘机司机岗位职责
2014/02/12 职场文书
目标责任书范文
2014/04/14 职场文书
学校施工安全责任书
2015/01/29 职场文书
文员岗位职责
2015/02/04 职场文书
应届毕业生自荐信
2015/03/04 职场文书
教师节主持词开场白
2015/05/29 职场文书
六个好看实用的 HTML + CSS 后台登录入口页面
2022/04/28 HTML / CSS
css清除浮动clearfix:after的用法详解(附完整代码)
2023/05/21 HTML / CSS