html5、canvas绘制本地时钟
效果图:
代码:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>canvas clock</title> </head> <body> <canvas id="clock" width="500" height="500">您的浏览器不支持canvas标签</canvas><script type="text/javascript"> var canvas = document.getElementById('clock'); var clock = canvas.getContext('2d'); var r = canvas.width/2.5; //半径 function drowClock(){//清除画布 clock.clearRect(0, 0, 800, 800);var now = new Date();var secd = now.getSeconds();var min = now.getMinutes();var hour = now.getHours();//小时必须获取浮点类型(小时+分数转化的小时)//时间格式19:23:30//将24小时进制装换为12小时进制 hour = hour + (min / 60);hour = hour > 12 ? hour - 12 : hour;//外圈 clock.beginPath();clock.lineWidth = 10;clock.strokeStyle = "#d9d9d9";clock.arc(250, 250, 200, 0, 360, false);clock.stroke();clock.closePath();//刻度//时刻度for (var i = 0; i < 12; i++) {clock.save();//设置时针的粗细 clock.lineWidth = 7;//设置时针的颜色 clock.strokeStyle = "#727272";//先设置0,0点 clock.translate(250, 250);//再设置旋转角度 clock.rotate((i * 30) * Math.PI / 180);//角度*Math.PI/180=弧度 clock.beginPath();clock.moveTo(0, -170);clock.lineTo(0, -190);clock.closePath();clock.stroke();clock.restore();}//分刻度for (var i = 0; i < 60; i++) {clock.save();//设置时针的粗细 clock.lineWidth = 3;//设置时针的颜色 clock.strokeStyle = "#727272";//先设置0,0点 clock.translate(250, 250);//再设置旋转角度 clock.rotate((i * 6) * Math.PI / 180);//角度*Math.PI/180=弧度 clock.beginPath();clock.moveTo(0, -180);clock.lineTo(0, -190);clock.closePath();clock.stroke();clock.restore();}//时针 clock.save();clock.lineWidth = 7;clock.strokeStyle = "#727272";clock.translate(250, 250);clock.rotate(hour * 30 * Math.PI / 180);clock.beginPath();clock.moveTo(0, -140);clock.lineTo(0, 30);clock.stroke();clock.closePath();clock.restore();// 文字for(i = 0;i<12;i++){angle = i * 30;// 转换为弧度制,Math.sin、Math.cos都接受弧度制单位 angle = angle*Math.PI/180;; font = (i + 3 > 12)?i+3-12 : i+3;fontX = 245+Math.round(Math.cos(angle)*(r-45));fontY = 256+Math.round(Math.sin(angle)*(r-45));clock.font = 'bold 16px 微软雅黑';clock.fillText(font+'',fontX,fontY);}//分针 clock.save();clock.lineWidth = 5;clock.strokeStyle = "#727272";clock.translate(250, 250);clock.rotate(min * 6 * Math.PI / 180);clock.beginPath();clock.moveTo(0, -160);clock.lineTo(0, 30);clock.stroke();clock.closePath();clock.restore();//秒针 clock.save();clock.lineWidth = 3;clock.strokeStyle = "#727272";clock.translate(250, 250);clock.rotate(secd * 6 * Math.PI / 180);clock.beginPath();clock.moveTo(0, -170);clock.lineTo(0, 30);clock.closePath();clock.stroke();//画交叉点 clock.beginPath();clock.arc(0, 0, 5, 0, 360, false);clock.closePath();clock.fillStyle = "#ebebeb";clock.fill();clock.stroke();clock.beginPath();clock.arc(0, -150, 5, 0, 360, false);clock.closePath();clock.fillStyle = "gray";clock.fill();clock.stroke();clock.restore();window.requestAnimationFrame(drowClock); } //使用setInternal(代码,(毫秒)时间) 让时钟动起来 drowClock(); // setInterval(drowClock, 1000); </script> </body> </html>
转载于:https://www.cnblogs.com/CaktyRiven/p/5287791.html
html5、canvas绘制本地时钟相关推荐
- html5时间画布走动,javascript+HTML5 canvas绘制时钟功能示例
本文实例讲述了javascript+HTML5 canvas绘制时钟功能.分享给大家供大家参考,具体如下: 效果如下: 代码: www.jb51.net canvas绘制时钟 div{text-ali ...
- html5canvas绘制时钟,JavaScript html5 canvas绘制时钟效果
本文实例讲述了JavaScript+html5 canvas绘制时钟效果.分享给大家供大家参考,具体如下: HTML部分: canvas绘图 JavaScript部分: function init() ...
- Canvas绘制一个时钟
Canvas绘制一个时钟 Canvas:一个可以使用脚本(通常为JavaScript)在其中绘制图像的 HTML 元素.它可以用来制作照片集或者制作简单(也不是那么简单)的动画,甚至可以进行实时视频处 ...
- HTML画正方形钟表,html5 canvas绘制时钟表时间
特效描述:html5 canvas绘制 时钟表时间.用canvas精灵绘制器绘制的时钟 代码结构 1. 引入JS 2. HTML代码 var Sprite=function(name,painter, ...
- java canvas 画图片_[Java教程][HTML5] Canvas绘制简单图片
[Java教程][HTML5] Canvas绘制简单图片 0 2016-05-13 13:00:04 获取Image对象,new出来 定义Image对象的src属性,参数:图片路径 定义Image对象 ...
- html5 canvas绘制圆形进度实例
2019独角兽企业重金招聘Python工程师标准>>> html5 canvas绘制圆形进度实例 <canvas id="test" width=200 h ...
- html 画动画效果,html5 canvas绘制曲线动画特效
特效描述:html5 canvas绘制 曲线动画特效. 代码结构 1. HTML代码 Balls Size Speed Delay Go! Presets: Atomic Flower Spiro Y ...
- 用html5做一条线,使用HTML5 canvas绘制线条的方法
使用HTML5 canvas绘制线条的方法 发布时间:2020-08-29 11:24:23 来源:亿速云 阅读:96 作者:小新 这篇文章主要介绍了使用HTML5 canvas绘制线条的方法,具有一 ...
- 使用 HTML5 Canvas 绘制出惊艳的水滴效果
HTML5 在不久前正式成为推荐标准,标志着全新的 Web 时代已经来临.在众多 HTML5 特性中,Canvas 元素用于在网页上绘制图形,该元素标签强大之处在于可以直接在 HTML 上进行图形操作 ...
最新文章
- 强烈推荐10个新媒体运营必备工具,极大提高工作效率
- 既可输入又可选择的组件
- 即时通讯音视频开发(八):常见的实时语音通讯编码标准
- Request和Response-学习笔记01【Request_原理和继承体系、Request_获取请求数据】
- JEEWX捷微企业号管家系统发布
- 环形单链表的约瑟夫问题
- velocity java 静态方法_java – 如何访问Velocity模板中的静态成员?
- ES6 深拷贝_JS基本数据类型和引用数据类型的区别及深浅拷贝
- python免费教程发布页
- 董路:当“边缘人”来到舞台中央
- shell script简介
- 全球首家 MUJI 酒店,这里有一份事无巨细的探店体验
- ADGUARD——去除广告利器
- 无需翻墙使用ChatGPT-4
- 一个有趣的博弈或推理游戏——除数博弈(动态规划与归纳法)
- 基于服务器搭建部署的疫情动态地图
- C语言中static与extern用法总结
- Redis 如何实现附近的人
- 安卓手机游戏《英雄迷宫冒险》存档修改
- 点滴时间读完《十亿消费者》
热门文章
- 网站页面内链如何布局才更有利于SEO?
- 网站建设难?三个技巧来帮你!
- Android性能优化面试题,与性能优化相关面试题 - 与IPC机制相关面试题 - 《Android面试宝典》 - 书栈网 · BookStack...
- 陕西宝鸡2021年高考成绩查询,2021年宝鸡网上查询中考成绩
- 开发日记-20190910 Makefile相关(一)
- 开发日记-20190821 关键词 读书笔记《掌控习惯》DAY 1
- NoSQL生态系统——hash分片和范围分片两种分片
- mysql 避免使用NULL字段
- 解决导入第三方图片JS出现403问题
- 【9.22校内测试】【可持久化并查集(主席树实现)】【DP】【点双联通分量/割点】...