jq模仿雨滴下落的动画
效果如图:
实现思路:定时器每隔x秒生成宽高、下落速度(即动画执行时间)、left随机的div。
1.CSS:
body{
overflow: hidden;/*这是为了防止出现滚动条*/
}
.com{
border-radius: 0 50% 50% 50%;
background: skyblue;
transform: rotate(45deg);
position: absolute;
top:;
}
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来实现。
jq模仿雨滴下落的动画的更多相关文章
- canvas入门级基本用法实现雨滴下落特效
canvas基础知识点参考各种文档,直接上代码,有非常详细注释 <!DOCTYPE html> <html> <head> <meta charset=&qu ...
- UWP 动画系列之模仿网易云音乐动画
一.前言 最近在弄毕业设计(那时坑爹选了制作个UWP商店的APP),一个人弄得烦躁,在这里记录一些在做毕业设计时的学习过程.由于我的毕业设计是做一个音乐播放器,那么Windows商店上优秀的软件当然是 ...
- jq初入行常用动画
--jq动画分类--(1)jQuery的动画其实就是将之前提到过的各种特效进行封装,并对其性能进行优化.(2)jQuery动画分为三个部分:非自定义动画,自定义动画,和全局动画设置. 一.非自定义动画 ...
- JQ效果 透明图片覆盖动画
效果图呈上 先说思路 1,一个固定的框架,有两张图片,一张是狗狗的,一张是练习方式,想把做好的练习方式隐藏 2,效果上想要从下面滑动出来,所以透明框定位在下面 3,整理需要的东西,缓慢升起需要动画效果 ...
- jQ图片列表光标移动动画
本效果使用jQuery和CSS实现了图片列表,当鼠标移入时图片向左微动,移出则复原. 效果展示: http://hovertree.com/texiao/jquery/88/ 效果图如下: 其中的jQ ...
- JQ模仿select
<!doctype html> <html> <head> <meta charset="utf-8"> <title> ...
- JQ 模仿注册时等待的时间
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- jq模仿h5 placeholder效果
$(".pay-license input").on("input propertychange blur",function(){ if($(this).va ...
- mouse事件在JQ中的应用(在动画与交互中用得比较多).
mousedown与mouseup事件 用户交互操作中,最简单直接的操作就是点击操作,因此jQuery提供了一个mousedown的快捷方法可以监听用户鼠标按下的操作,与其对应的还有一个方法mouse ...
随机推荐
- Android 双卡获取当前使用流量在线卡的信息
最近接触了一个项目,需要获取在线流量卡的信息,下面的方式,可以获取大部分手机的正确手机卡信息. 一 获取获取IMEI public static String getDeviced(int solt ...
- 自定义jstl fn函数fns
1.引入函数声明: jsp页面需要引入自定义fns函数声明:<%@ taglib prefix="fns" uri="/WEB-INF/tlds/fns.tld&q ...
- linux_文件权限
权限贯穿linux整个系统 创建文件或目录,属主和组都是当前用户 linux权限位? 9位基础权限位, 3位一组,总共12位权限 用户对文件权限,相当于你的笔记本 r 读 4 w ...
- javase学习小结二
三角函数方法 Math.sin(radians):Math.sin(Math.PI/6)=0.5 Math.cos(radians):Math.cos(Math.PI/3)=0.5 Math.tan( ...
- centos 编译安装net-snmp 5.6.2
1.准备环境 yum -y install make gcc gcc-c++ gcc-g77 openssl openssl-devel 常用lib安装可参照本文 2.编译和安装 首先我们需要下载Ne ...
- es随想二
一.es运行状态的监控 es长时间批量入库时,需要对入库的性能进行监控,否则可能导致es重启,入库任务失败. 可以编写shell脚本,每分钟用cat命令监控pending的数量,数量逐渐增大时就需要注 ...
- [Sdoi2017]相关分析 [线段树]
[Sdoi2017]相关分析 题意:沙茶线段树 md其实我考场上还剩一个多小时写了40分 其实当时写正解也可以吧1h也就写完了不过还要拍一下 正解代码比40分短2333 #include <io ...
- 【转】我读过最好的epoll讲解(来自知乎)
首先我们来定义流的概念,一个流可以是文件,socket,pipe等等可以进行I/O操作的内核对象.不管是文件,还是套接字,还是管道,我们都可以把他们看作流.之后我们来讨论I/O的操作,通过read,我 ...
- 自己动手实践 spring retry 重试框架
前序 马上过年了,预祝大家,新年快乐,少写bug 什么是spring retry? spring retry是从spring batch独立出来的一个能功能,主要实现了重试和熔断. 什么时候用? 远程 ...
- 自兴人工智能------------python入门基础(2)列表和元祖
一.通用序列操作: 列表中所有序列都可以进行特定的操作,包括索引(indexing).分片(slicing).序列相加(adding).乘法,成员资格,长度,最小值,最大值,下面会一一介绍这些操作法. ...