• canvas炫酷时钟


    canvas炫酷时钟

    实现的功能

    • 主要用到canvas的一些基础api
    • 直接看效果

    Alt

    html:

       <canvas id="myCanvas" width="500" height="500"></canvas>
    

    css:

       #myCanvas{
            position: absolute;
            top: 50%;
            left: 50%;
            margin-top: -250px;
            margin-left: -250px;
        }
    

    js:

        var myCanvas = document.getElementById('myCanvas');
        var ctx = myCanvas.getContext('2d');
    
        ctx.strokeStyle = '#00ffff';
        ctx.lineWidth = '15';
        ctx.shadowBlur = '20';
        ctx.shadowColor = 'black';
    
        function draw(){
            //获取时间
            var date = new Date();
            var today = date.toDateString();
            var h = date.getHours();
            var m = date.getMinutes();
            var s = date.getSeconds();
            var ms = date.getMilliseconds();
            var s_ms = s + ms/1000;
            //背景
            var grd =ctx.createRadialGradient(250,250,50,250,250,300);
            grd.addColorStop(0,'red');
            grd.addColorStop(1,'black');
            ctx.fillStyle = grd;
            ctx.fillRect(0,0,500,500);
            //时分秒圆弧
            // 360/12 * h 时
            ctx.beginPath();
            ctx.arc(250, 250, 200, 1.5 * Math.PI, formatdeg(360 / 12 * h - 90));
            ctx.stroke();
    
            // 360/60 * m 分
            ctx.beginPath();
            ctx.arc(250, 250, 170, 1.5 * Math.PI, formatdeg(360 / 60 * m - 90));
            ctx.stroke();
    
            // 360/60 * s 秒
            ctx.beginPath();
            ctx.arc(250, 250, 140, 1.5 * Math.PI, formatdeg(360 / 60 * s_ms - 90));
            ctx.stroke();
    
            ctx.font = '20px Arial';
            ctx.textAlign = 'center';
            ctx.fillStyle = '#00ffff';
            ctx.fillText(today,250,250);
    
            ctx.fillText(formatTime(h) + ' : ' + formatTime(m) + ' : ' + formatTime(s) + ' ' + formatMs(ms), 250, 280);  
        };
        setInterval(draw,40);
    
        //时间处理
        function formatTime(time){
            return ('0' + time).slice(-2);
        }
        function formatMs(ms){
            if(ms <10){
                return "00" + ms;
            }else if(ms <100){
                return "0" + ms;
            }else{
                return ms;
            }
        }
        //角度转弧度
        function formatdeg(deg){
            var fd = Math.PI / 180;
            return deg * fd;
        }
    

    参考自:腾讯课堂渡一教育

  • 相关阅读:
    php文件下载方法收藏(附js下载技巧)
    微信自定义菜单类简单开发样例
    支付宝即时到账以及扫码支付相关注意事项
    ob系列函数归纳
    去除博客园底部图片广告的CSS代码
    TortoiseGit自动记住用户名密码的方法
    推荐分享一个牛X的自定义PHP加密解密类
    自动判断PC端、手机端跳往不同的域名JS实现代码
    unity 中 Tilemap的使用 笔记
    unity 判断平台(安卓,iOS还是编辑器)
  • 原文地址:https://www.cnblogs.com/sgs123/p/10818197.html
Copyright © 2020-2023  润新知