使用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 相关文章推荐
JS函数验证总结(方便js客户端输入验证)
Oct 29 Javascript
JS中的public和private对象,即static修饰符
Jan 18 Javascript
jQuery ui插件的使用方法代码实例
May 08 Javascript
js判断数据类型如判断是否为数组是否为字符串等等
Jan 15 Javascript
JavaScript实现彩虹文字效果的方法
Apr 16 Javascript
原生js页面滚动延迟加载图片
Dec 20 Javascript
jquery分页插件jquery.pagination.js使用方法解析
Apr 01 Javascript
bootstrap flask登录页面编写实例
Nov 01 Javascript
微信小程序 本地图片按照屏幕尺寸处理
Aug 04 Javascript
了解javascript中的Dom操作
May 27 Javascript
详解用js代码触发dom事件的实现方案
Jun 10 Javascript
在vue中使用echarts(折线图的demo,markline用法)
Jul 20 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
DOTA2 探索永无止境 玩家自创强悍插眼攻略
2020/04/20 DOTA
用session做客户验证时的注意事项
2006/10/09 PHP
PHP+Ajax实现的博客文章添加类别功能示例
2018/03/29 PHP
jQuery获取文本节点之 text()/val()/html() 方法区别
2011/03/01 Javascript
JavaScript动态创建div属性和样式示例代码
2013/10/09 Javascript
JQuery伸缩导航练习示例
2013/11/13 Javascript
Ext4.2的Ext.grid.plugin.RowExpander无法触发事件解决办法
2014/08/15 Javascript
后台获取ZTREE选中节点的方法
2015/02/12 Javascript
浅谈EasyUI中Treegrid节点的删除
2015/03/01 Javascript
js兼容pc端浏览器并有多种弹出小提示的手机端浮层控件实例
2015/04/29 Javascript
利用jQuery插件imgAreaSelect实现图片上传裁剪(放大缩小)
2016/12/02 Javascript
详解微信小程序开发之城市选择器 城市切换
2017/01/17 Javascript
Angular 4依赖注入学习教程之InjectToken的使用(八)
2017/06/04 Javascript
JS实现搜索关键词的智能提示功能
2017/07/07 Javascript
详解基于Angular4+ server render(服务端渲染)开发教程
2017/08/28 Javascript
Vuex 快速入门(简单易懂)
2018/09/20 Javascript
详解离线安装npm包的几种方法
2018/11/25 Javascript
手把手带你封装一个vue component第三方库
2019/02/14 Javascript
vue动态循环出的多个select出现过的变为disabled(实例代码)
2019/11/10 Javascript
python实现定制交互式命令行的方法
2014/07/03 Python
解读Django框架中的低层次缓存API
2015/07/24 Python
Django跨域请求问题的解决方法示例
2018/06/16 Python
Python中logging实例讲解
2019/01/17 Python
Python中按值来获取指定的键
2019/03/04 Python
Python对接 xray 和微信实现自动告警
2019/09/17 Python
3种适用于Python的疯狂秘密武器及原因解析
2020/04/29 Python
new修饰符是起什么作用
2015/06/28 面试题
法学毕业生自荐信
2013/11/13 职场文书
有个性的自我评价范文
2013/11/15 职场文书
面料业务员岗位职责
2013/12/26 职场文书
茶叶店创业计划书范文
2014/01/19 职场文书
企业文化演讲稿
2014/05/20 职场文书
水利水电建筑施工应届生求职信
2014/07/04 职场文书
出租车拒载检讨书
2015/01/28 职场文书
监守自盗观后感
2015/06/10 职场文书
python绘制简单直方图(质量分布图)的方法
2022/04/21 Python