zoukankan      html  css  js  c++  java
  • jq模仿雨滴下落的动画

    效果如图:

     

    实现思路:定时器每隔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+'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来实现。

  • 相关阅读:
    JS中json对象克隆
    jhipster中图片路径打包问题(webpack)
    arcgis for javascript api 4.x 中,使用本地非 4326坐标系绘制功能实现
    spring核心之IOC
    spring基于XML的声明式事务控制
    hibernate之事务处理
    hibernate之一级缓存
    hibernate之一对多,多对一
    hibernate之HQL,Criteria与SQL
    spring的基于注解的IOC配置
  • 原文地址:https://www.cnblogs.com/zjjDaily/p/8472579.html
Copyright © 2011-2022 走看看