利用canvas绘制正在加载的动画

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <title>loading</title>
</head>
<body style="overflow: hidden;background-color: rgba(0,0,0,0.1);">
    <canvas id="loading">
        您的浏览器不支持canvas
    </canvas>

    <script type="text/javascript" charset="utf-8" async defer>
        window.οnlοad=function () {
            var c = document.getElementById("loading");
            var ctx = c.getContext('2d');
            c.width = window.innerWidth;
            c.height = window.innerHeight;
            var cx = c.width/2,
                cy = c.height/2,
                radius = 30;
            var r = [3,4,4.5,5,6,7];
            var angle = [10,25,45,65,90,120];
            var alpha = [0.25,0.35,0.45,0.65,0.8,1];
            var x=[],y=[];

            function blueCircle(){
                x=[];
                y=[];
                for(var i = 0; i < r.length; i ++){
                    if(angle[i]>360)
                        angle[i] = 0;
                    ctx.beginPath();
                    ctx.fillStyle = "rgba(125,125,255,"+alpha[i]+")";
                    x.push( cx + radius*Math.cos(angle[i]*Math.PI/180));
                    y.push( cy + radius*Math.sin(angle[i]*Math.PI/180));
                    ctx.arc(x[i],y[i],r[i],0,2*Math.PI, true);
                    ctx.closePath();
                    ctx.fill();
                    angle[i] += 5;
                }
            }
            // requestAnimationFrame根据浏览器刷新频率循环
            (function draw(){
                window.requestAnimationFrame(draw);
                ctx.clearRect(0,0,c.width,c.height);
                blueCircle();
            }())
        }
    </script>
</body>
</html>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值