zoukankan      html  css  js  c++  java
  • h5canvas绘制loading页面

    <!DOCTYPE html>
    <html lang="en">
    <head>
    <meta charset="UTF-8">
    <title>百分比加载</title>
    </head>
    <body>
    <canvas id="canvas" width="500" height="500" style="background:#000;"></canvas>
    <script>
    window.onload = function(){
    var canvas = document.getElementById('canvas'), //获取canvas元素
    context = canvas.getContext('2d'), //获取画图环境,指明为2d
    centerX = canvas.width/2, //Canvas中心点x轴坐标
    centerY = canvas.height/2, //Canvas中心点y轴坐标
    rad = Math.PI*2/100, //将360度分成100份,那么每一份就是rad度
    speed = 0.1; //加载的快慢

    //绘制外圈
    function blueCircle(n){
    context.save();//保存当前环境的状态(save和restore可以保证样式属性只运用于该段canvas元素)
    context.strokeStyle = "#49f"; //设置描边样式
    context.lineWidth = 5; //设置线宽
    context.beginPath(); //路径开始
    context.arc(centerX, centerY, 100 , -Math.PI/2, -Math.PI/2 +n*rad, false); //用于绘制圆弧context.arc(x坐标,y坐标,半径,起始角度,终止角度,顺时针/逆时针)
    context.stroke(); //绘制
    context.closePath(); //路径结束
    context.restore();//返回之前保存过的路径状态和属性
    }
    //绘制白色外圈
    function whiteCircle(){
    context.save();
    context.beginPath();
    context.strokeStyle = "#fff";
    context.arc(centerX, centerY, 100 , 0, Math.PI*2, false);
    context.stroke();
    context.closePath();
    context.restore();
    }

    //百分比文字绘制
    function text(n){
    context.save();
    context.strokeStyle = "#fff"; //设置描边样式
    context.font = "40px Arial"; //设置字体大小和字体
    //绘制字体,并且指定位置
    context.strokeText(n.toFixed(0)+"%", centerX-25, centerY+10);
    context.stroke(); //执行绘制
    context.restore();
    }

    //动画循环
    (function drawFrame(){
    window.requestAnimationFrame(drawFrame, canvas);//requestAnimationFrame作用与setTimeInterval一样,不同的是它会根据浏览器的刷新频率自动调整动画的时间间隔。
    context.clearRect(0, 0, canvas.width, canvas.height);

    whiteCircle();
    text(speed);
    blueCircle(speed);

    if(speed > 100){
    speed = 0;
    }else{
    speed += 0.1;
    }
    }());
    }
    </script>
    </body>
    </html>

  • 相关阅读:
    python中的编码问题
    CVPR2018 Tutorial 之 Visual Recognition and Beyond
    hdu 1376 Octal Fractions
    hdu 1329 Hanoi Tower Troubles Again!
    hdu 1309 Loansome Car Buyer
    hdu 1333 Smith Numbers
    hdu 1288 Hat's Tea
    hdu 1284 钱币兑换问题
    hdu 1275 两车追及或相遇问题
    hdu 1270 小希的数表
  • 原文地址:https://www.cnblogs.com/myspecialzone/p/5833577.html
Copyright © 2011-2022 走看看