前端特效(5)--涟漪

利用jquery和Velocity实现随机涟漪的效果

主要知识点:

  1. 要使用Velocity首先要引入它,如果想与JQ配合使用注意要先引入JQ再引入Velocity
  2. Velocity 接收一个或更多的参数,只有第一个参数是是强制要求的,它可以是一个命令(如"scroll"),或者是由CSS属性值组成的对象(这些值是动画的目标值);第二个参数是由动画附加选项组成的对象,比如过渡时长,张弛度,延时还有回调函数:

$element.velocity({ left: “500px” }, { delay: 1000, duration
:500,easing:[ 1000, 40 ],complete:function(){alert(123)}});

  1. 具体可搜索Velocity.js的方法的使用,治理只做大概的介绍
  2. 设置一些CSS3变换,允许你做一些2D或3D的动画,比如平移,扩大,旋转。注意不会影响元素在网页中的位置,也不会影响周围 的元素在页面中的位置。 Velocity支持下面的变换:translateX: 从左向右沿x轴移动元素;translateY: 从上到下沿y轴移动元素;rotateZ: 关于z轴旋转元素;rotateX: 关于x轴旋转元素(看起来由里向外);rotateY: 关于y轴旋转元素(由左到右);scaleX: 成倍数改变元素宽度;scaleY: 成倍数改变元素高度
  3. 用setInterval和 clearInterval控制涟漪效果的关闭和开启

主要代码:

div的样式:
    <style>
    div{
        width: 1px;
        height: 1px;
        /* background-color: red; */
        position: fixed;
        /* left: 300px; */
        /* top: 240px; */
        border-radius: 50%;
        z-index: -1;
    }
    </style>
<body>
    <!-- <div></div> -->
    <button>开启</button>
    <button>关闭</button>
    <script src="jquery-1.10.1.min.js"></script>
    <script src="velocity.min.js"></script>
    <script>
        // 开启计时器,每隔0.1s随机创建div  随机数量 颜色 位置
    // $(document).click(function(){
    //     $("div").velocity({
    //         "scaleX":150,
    //         "scaleY":150,
    //         "backgroundColorAlpha":0,
    //     },1000)
    // }) 
    var timer = null;
    var iW = null;
    var iH = null;
    $("button").eq(0).click(function (){
        iW = document.documentElement.clientWidth;
        iH = document.documentElement.clientHeight;
        timer = setInterval(lianyi,200);
    })
    $("button").eq(1).click(function (){
        clearInterval(timer);
    })
    function lianyi(){
        for(var i=0;i<Math.round(Math.random()*2+3);i++){
            var oDiv = $("<div>").appendTo($("body"));
            var rR = Math.round(Math.random()*255);
            var rG = Math.round(Math.random()*255);
            var rB = Math.round(Math.random()*255);
            oDiv.css({
                "backgroundColor" : `rgb(${rR},${rG},${rB})`,
                "left" : Math.random()*iW,
                "top" : Math.random()*iH,          
            }).velocity({
                "scaleX" : 150,
                "scaleY" : 150,
                "opacity" : 0,
            },{
                "duration" : 1000,
                "complete" : function (){
                    $(this).remove();
                }
            })
        }
    }

    
    </script>
</body>

效果:
点击“开启”(此处为动画效果)
在这里插入图片描述在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值