使用js和canvas实现时钟效果


Posted in Javascript onSeptember 08, 2020

使用js和canvas写一个时钟,供大家参考,具体内容如下

使用js和canvas实现时钟效果

<!DOCTYPE html>`
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>

<body>
  <canvas id='canvas' width='600' height='600' style="border: 1px solid red;"></canvas>
  <script>
    /** @type {HTMLCanvasElement} */
    let canvas = document.querySelector("#canvas");
    let ctx = canvas.getContext("2d");
    let deg = Math.PI / 180;

    let HourR = 100;
    let MinutesR = 135;
    let SecondsR = 170;
    setInterval(function () {

      canvas.width = canvas.width;
      ctx.arc(300, 300, 200, 0, Math.PI * 2)
      ctx.fillStyle = 'rgba(10,100,30,0.2)'
      ctx.strokeStyle = 'red'
      //获取当前时间
      let dt = new Date()
      let Hour = dt.getHours()
      let Minutes = dt.getMinutes()
      let Seconds = dt.getSeconds()
      //时钟
      ctx.moveTo(300, 300);
      let xx = HourR * (Math.sin(Hour * 30 * deg))
      let yy = HourR * (Math.cos(Hour * 30 * deg))
      ctx.lineTo((300 + xx), (300 - yy))
      //分钟和秒钟
      function move(time, R) {
        ctx.moveTo(300, 300);
        xx = R * (Math.sin(time * 6 * deg))
        yy = R * (Math.cos(time * 6 * deg))
        ctx.lineTo((300 + xx), (300 - yy))
      }
      //小时指针
      for (let m = 0; m < 12; m++) {
        let xx = 190 * (Math.sin(m * 30 * deg))
        let yy = 190 * (Math.cos(m * 30 * deg))
        let xx1 = 200 * (Math.sin(m * 30 * deg))
        let yy1 = 200 * (Math.cos(m * 30 * deg))
        ctx.moveTo((300 + xx), (300 - yy));
        ctx.lineTo((300 + xx1), (300 - yy1))
      }

      move(Seconds, SecondsR)
      move(Minutes, MinutesR)
      ctx.fill()
      ctx.stroke()
    }, 1000)


  </script>
</body>

</html>

更多JavaScript时钟特效点击查看:JavaScript时钟特效专题

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
Javascript SHA-1:Secure Hash Algorithm
Dec 20 Javascript
jquery select选中的一个小问题
Oct 11 Javascript
JavaScript 格式字符串的应用
Mar 29 Javascript
jquery插件开发注意事项小结
Jun 04 Javascript
js交换排序 冒泡排序算法(Javascript版)
Oct 04 Javascript
jQuery使用$获取对象后检查该对象是否存在的实现方法
Sep 04 Javascript
ES6中Generator与异步操作实例分析
Mar 31 Javascript
微信小程序实现手势图案锁屏功能
Jan 30 Javascript
JS中的算法与数据结构之栈(Stack)实例详解
Aug 20 Javascript
微信小程序之左右布局的实现代码
Dec 13 Javascript
vue 自定义组件的写法与用法详解
Mar 04 Javascript
一道JS算法面试题——冒泡、选择排序
Apr 21 Javascript
javascript使用canvas实现饼状图效果
Sep 08 #Javascript
vue配置多代理服务接口地址操作
Sep 08 #Javascript
全局安装 Vue cli3 和 继续使用 Vue-cli2.x操作
Sep 08 #Javascript
JS删除对象中某一属性案例详解
Sep 08 #Javascript
vue全局使用axios的操作
Sep 08 #Javascript
Vue自定义多选组件使用详解
Sep 08 #Javascript
vue项目中微信登录的实现操作
Sep 08 #Javascript
You might like
Can't create/write to file 'C:\WINDOWS\TEMP\...MYSQL报错解决方法
2011/06/30 PHP
一个好用的PHP验证码类实例分享
2013/12/27 PHP
thinkphp中html:list标签传递多个参数实例
2014/10/30 PHP
JavaScript Event学习第十一章 按键的检测
2010/02/10 Javascript
jQuery EasyUI API 中文文档 - Draggable 可拖拽
2011/09/29 Javascript
JavaScript中函数声明优先于变量声明的实例分析
2012/03/01 Javascript
常用一些Javascript判断函数
2012/08/14 Javascript
JQUERY表单暂存功能插件分享
2016/02/23 Javascript
D3.js实现折线图的方法详解
2016/09/21 Javascript
vue中使用localstorage来存储页面信息
2017/11/04 Javascript
解决element ui select下拉框不回显数据问题的解决
2019/02/20 Javascript
详解vue移动端项目代码拆分记录
2019/03/15 Javascript
javascript实现弹出层效果
2019/12/10 Javascript
Node.js API详解之 string_decoder用法实例分析
2020/04/29 Javascript
[01:09]模型精美,特效酷炫!TI9不朽宝藏Ⅰ鉴赏
2019/05/10 DOTA
python 获取文件下所有文件或目录os.walk()的实例
2018/04/23 Python
Windows下安装Scrapy
2018/10/17 Python
由Python编写的MySQL管理工具代码实例
2019/04/09 Python
python2.7 安装pip的方法步骤(管用)
2019/05/05 Python
华为2019校招笔试题之处理字符串(python版)
2019/06/25 Python
使用 Supervisor 监控 Python3 进程方式
2019/12/05 Python
Python导入模块包原理及相关注意事项
2020/03/25 Python
python实现三种随机请求头方式
2021/01/05 Python
利用Python过滤相似文本的简单方法示例
2021/02/03 Python
使用CSS3制作一个简单的进度条(demo)
2017/05/23 HTML / CSS
香港演唱会订票网站:StubHub香港
2019/10/10 全球购物
俄罗斯苹果优质经销商商店:iPort
2020/05/27 全球购物
车贷收入证明范本
2014/01/09 职场文书
高一物理教学反思
2014/01/24 职场文书
工程建设实施方案
2014/03/14 职场文书
公司聘任书模板
2014/03/29 职场文书
青年文明号服务承诺
2014/03/31 职场文书
小学生通知书评语
2014/12/31 职场文书
胡桃夹子观后感
2015/06/11 职场文书
2016元旦文艺汇演主持词
2015/07/06 职场文书
如何拟写通知正文?
2019/04/02 职场文书