使用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获得CheckBoxList选中的数量
Oct 27 Javascript
使用jquery实现以post打开新窗口
Mar 19 Javascript
JavaScript数组深拷贝和浅拷贝的两种方法
Apr 16 Javascript
JavaScript判断浏览器类型的方法
Feb 10 Javascript
js实现3D图片逐张轮播幻灯片特效代码分享
Sep 09 Javascript
AngularJS 霸道的过滤器小结
Apr 26 Javascript
微信小程序实现瀑布流布局与无限加载的方法详解
May 12 Javascript
JS+HTML+CSS实现轮播效果
Nov 28 Javascript
JS实现的哈夫曼编码示例【原始版与修改版】
Apr 22 Javascript
React Native日期时间选择组件的示例代码
Apr 27 Javascript
微信小程序input框中加入小图标的实现方法
Jun 19 Javascript
echarts实现折线图的拖拽效果
Dec 19 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
网站当前的在线人数
2006/10/09 PHP
PHP实现支持GET,POST,Multipart/form-data的HTTP请求类
2014/09/24 PHP
使用 PHPStorm 开发 Laravel
2015/03/24 PHP
Yii2主题(Theme)用法详解
2016/07/23 PHP
thinkPHP多语言切换设置方法详解
2016/11/11 PHP
php实现支持中文的文件下载功能示例
2017/08/30 PHP
PHP ajax+jQuery 实现批量删除功能实例代码小结
2018/12/06 PHP
Jquery 获取checkbox的checked问题
2011/11/16 Javascript
ActiveX控件与Javascript之间的交互示例
2014/06/04 Javascript
使用ngView配合AngularJS应用实现动画效果的方法
2015/06/19 Javascript
jQuery使用Layer弹出层插件闪退问题
2016/12/22 Javascript
bootstrap导航条实现代码
2016/12/28 Javascript
TypeScript基础入门教程之三重斜线指令详解
2018/10/22 Javascript
layui在form表单页面通过Validform加入简单验证的方法
2019/09/06 Javascript
微信小程序和H5页面间相互跳转代码实例
2019/09/19 Javascript
js实现点赞效果
2020/03/16 Javascript
详解Python的Django框架中的Cookie相关处理
2015/07/22 Python
python数据类型判断type与isinstance的区别实例解析
2017/10/31 Python
django ajax json的实例代码
2018/05/29 Python
Python操作word常见方法示例【win32com与docx模块】
2018/07/17 Python
Python 占位符的使用方法详解
2019/07/10 Python
Django 框架模型操作入门教程
2019/11/05 Python
Python坐标线性插值应用实现
2019/11/13 Python
python数据库编程 Mysql实现通讯录
2020/03/27 Python
详解pandas绘制矩阵散点图(scatter_matrix)的方法
2020/04/23 Python
Python图像读写方法对比
2020/11/16 Python
CSS3实现的渐变幻灯片效果
2020/12/07 HTML / CSS
Html5 postMessage实现跨域消息传递
2016/03/11 HTML / CSS
使用html5 canvas绘制圆环动效
2019/06/03 HTML / CSS
英国领先的豪华时尚家居网上商店:Amara
2019/08/12 全球购物
城管综合整治方案
2014/05/01 职场文书
授权委托书公证
2014/09/14 职场文书
2015年农村党员公开承诺事项
2015/04/28 职场文书
深入解析NumPy中的Broadcasting广播机制
2021/05/30 Python
java中用float时,数字后面加f,这样是为什么你知道吗
2021/09/04 Java/Android
Java实现给Word文件添加文字水印
2022/02/15 Java/Android