使用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 定时器调用传递参数的方法
Nov 12 Javascript
JQUERY操作JSON实例代码
Feb 09 Javascript
JS和JQ的event对象区别分析
Nov 24 Javascript
JavaScript中利用Array和Object实现Map的方法
Jul 27 Javascript
js实现3D图片逐张轮播幻灯片特效代码分享
Sep 09 Javascript
详解Document.Cookie
Dec 25 Javascript
jQuery的ajax和遍历数组json实例代码
Aug 01 Javascript
详解ECMAScript6入门--Class对象
Apr 27 Javascript
angular4中*ngFor不能对返回来的对象进行循环的解决方法
Sep 12 Javascript
详解wepy开发小程序踩过的坑(小结)
May 22 Javascript
vue spa应用中的路由缓存问题与解决方案
May 31 Javascript
解决vue项目打包上服务器显示404错误,本地没出错的问题
Nov 03 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
十大催泪虐心动漫电影,有几部你还没看
2020/03/04 日漫
php jquery 实现新闻标签分类与无刷新分页
2009/12/18 PHP
php中用memcached实现页面防刷新功能
2014/08/19 PHP
Ubuntu12下编译安装PHP5.3开发环境
2015/03/27 PHP
yii用户注册表单验证实例
2015/12/26 PHP
php resizeimage 部分jpg文件 生成缩略图失败的原因分析及解决办法
2016/03/23 PHP
PHP使用stream_context_create()模拟POST/GET请求的方法
2016/04/02 PHP
PHP实现json_decode不转义中文的方法
2017/05/20 PHP
Javascript 自适应高度的Tab选项卡
2011/04/05 Javascript
尝试在让script的type属性等于text/html
2013/01/15 Javascript
jquery实现将获取的颜色值转换为十六进制形式的方法
2014/12/20 Javascript
jQuery使用CSS()方法给指定元素同时设置多个样式
2015/03/26 Javascript
js+css实现上下翻页相册代码分享
2015/08/18 Javascript
详解JavaScript设计模式开发中的桥接模式使用
2016/05/18 Javascript
微信小程序 定位到当前城市实现实例代码
2017/02/23 Javascript
js前端实现图片懒加载(lazyload)的两种方式
2017/04/24 Javascript
在Swiper内如何制作CSS3动画效果示例代码
2017/12/07 Javascript
jQuery实现动态加载select下拉列表项功能示例
2018/05/31 jQuery
微信小程序带动画弹窗组件使用方法详解
2018/11/27 Javascript
详解Vue.js中引入图片路径的几种方式
2019/06/17 Javascript
Vue.js使用axios动态获取response里的data数据操作
2020/09/08 Javascript
[03:43]2014DOTA2西雅图国际邀请赛 newbee战队巡礼
2014/07/07 DOTA
Python对文件和目录进行操作的方法(file对象/os/os.path/shutil 模块)
2017/05/08 Python
python批量读取文件名并写入txt文件中
2020/09/05 Python
Python 模拟动态产生字母验证码图片功能
2019/12/24 Python
世界上最好的帽子:Tilley
2016/11/27 全球购物
Agoda台湾官网:国内外订房2折起
2018/03/20 全球购物
户籍证明的格式
2014/01/13 职场文书
运动会入场解说词
2014/02/07 职场文书
简单的项目建议书模板
2014/03/12 职场文书
计算机网络专业自荐书
2014/06/09 职场文书
小学课外阅读总结
2014/07/09 职场文书
2015大学生求职信范文
2015/03/20 职场文书
Python的这些库,你知道多少?
2021/06/09 Python
详解MySQL的主键查询为什么这么快
2022/04/03 MySQL
Android开发手册TextInputLayout样式使用示例
2022/06/10 Java/Android