广告
返回顶部
首页 > 资讯 > 精选 >如何通过Canvas+JS实现简易的时钟
  • 256
分享到

如何通过Canvas+JS实现简易的时钟

2023-06-17 07:06:40 256人浏览 泡泡鱼
摘要

今天就跟大家聊聊有关如何通过canvas+js实现简易的时钟,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。之前学习了下HTML5中的canvas元素,为了练练手就实现了一个简易的时钟

今天就跟大家聊聊有关如何通过canvas+js实现简易的时钟,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。

之前学习了下HTML5中的canvas元素,为了练练手就实现了一个简易的时钟。时钟本身并不复杂,也没有使用图片进行美化,不过麻雀虽小五脏俱全,下面就与大家分享一下:

实现效果:


如何通过Canvas+JS实现简易的时钟

html代码:

<!DOCTYPE html> <html> <head>     <meta Http-equiv="Content-Type" content="text/html; charset=utf-8" />     <title>Clock</title>     <style type="text/CSS">     *{         margin: 0;         padding: 0;     }     .canvas{         margin-left: 20px;         margin-top: 20px;         border: solid 1px;     }     </style> </head> <body onload= "main()">  <canvas class = "canvas" id="canvasId" width = '500px' height = '400px'></canvas>  <script type= "text/javascript" src = "Clock.js"></script> </body> </html>

JS代码:

var Canvas = {};  Canvas.cxt = document.getElementById('canvasId').getContext('2d');  Canvas.Point = function(x, y){     this.x = x;     this.y = y; };   Canvas.clearCxt = function(){     var me = this;     var canvas = me.cxt.canvas;        me.cxt.clearRect(0,0, canvas.offsetWidth, canvas.offsetHeight); };   Canvas.Clock = function(){     var me = Canvas,         c = me.cxt,         radius = 150,          scale = 20,          minangle = (1/30)*Math.PI,          hourangle = (1/6)*Math.PI,          hourHandLength = radius/2,          minHandLength = radius/3*2,          secHandLength = radius/10*9,          center = new me.Point(c.canvas.width/2, c.canvas.height/2);               function drawCenter(){         c.save();          c.translate(center.x, center.y);           c.fillStyle = 'black';         c.beginPath();         c.arc(0, 0, radius/20, 0, 2*Math.PI);         c.closePath();         c.fill();         c.stroke();          c.restore();     };           function drawBackGround(){         c.save();          c.translate(center.x, center.y);                   function drawScale(){            c.moveTo(radius - scale, 0);            c.lineTo(radius, 0);          };          c.beginPath();         c.arc(0, 0, radius, 0, 2*Math.PI, true);         c.closePath();              for (var i = 1; i <= 12; i++) {            drawScale();            c.rotate(hourangle);          };                  c.font = " bold 30px impack"         c.fillText("3", 110, 10);         c.fillText("6", -7, 120);         c.fillText("9", -120, 10);         c.fillText("12", -16, -100);         c.stroke();          c.restore();     };           this.drawHourHand = function(h){          h = h === 0? 24: h;          c.save();         c.translate(center.x, center.y);          c.rotate(3/2*Math.PI);          c.rotate(h*hourangle);          c.beginPath();         c.moveTo(0, 0);         c.lineTo(hourHandLength, 0);         c.stroke();         c.restore();     };           this.drawMinHand = function(m){          m = m === 0? 60: m;          c.save();         c.translate(center.x, center.y);          c.rotate(3/2*Math.PI);          c.rotate(m*minangle);          c.beginPath();         c.moveTo(0, 0);         c.lineTo(minHandLength, 0);         c.stroke();         c.restore();     };           this.drawSecHand = function(s){          s = s === 0? 60: s;          c.save();         c.translate(center.x, center.y);          c.rotate(3/2*Math.PI);          c.rotate(s*minangle);          c.beginPath();         c.moveTo(0, 0);         c.lineTo(secHandLength, 0);         c.stroke();         c.restore();     };           this.drawClock = function(){         var me = this;           function draw(){            var date = new Date();             Canvas.clearCxt();             drawBackGround();            drawCenter();            me.drawHourHand(date.getHours() + date.getMinutes()/60);            me.drawMinHand(date.getMinutes() + date.getSeconds()/60);            me.drawSecHand(date.getSeconds());         }         draw();         setInterval(draw, 1000);     };   };   var main = function(){     var clock = new Canvas.Clock();     clock.drawClock(); };

代码中涉及到了一些简单的canvas元素api 大家Google一下即可,

看完上述内容,你们对如何通过Canvas+JS实现简易的时钟有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注编程网精选频道,感谢大家的支持。

--结束END--

本文标题: 如何通过Canvas+JS实现简易的时钟

本文链接: https://www.lsjlt.com/news/287648.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 如何通过Canvas+JS实现简易的时钟
    今天就跟大家聊聊有关如何通过Canvas+JS实现简易的时钟,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。之前学习了下html5中的canvas元素,为了练练手就实现了一个简易的时钟...
    99+
    2023-06-17
  • CSS3+js如何实现简单的时钟特效
    小编给大家分享一下CSS3+js如何实现简单的时钟特效,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!什么是csscss是一种用来表现HTML或XML等文件样式的计算机语言,主要是用来设计网页的样式,使网页更加美化。它也是一...
    99+
    2023-06-09
  • 如何使用CSS3+js实现简单的时钟特效
    小编给大家分享一下如何使用CSS3+js实现简单的时钟特效,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!html代码如下:<...
    99+
    2022-10-19
  • js如何实现电子时钟效果
    本篇内容主要讲解“js如何实现电子时钟效果”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“js如何实现电子时钟效果”吧!代码如下(示例):<!DOCTYPE html><...
    99+
    2023-07-02
  • C++如何实现简易通讯录功能
    这篇文章主要讲解了“C++如何实现简易通讯录功能”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“C++如何实现简易通讯录功能”吧!实现功能提示:这里可以添加本文要记录的大概内容:通过c++语法...
    99+
    2023-07-02
  • js如何实现移动端简易滑动表格
    这篇文章主要介绍“js如何实现移动端简易滑动表格”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“js如何实现移动端简易滑动表格”文章能帮助大家解决问题。上js文件代码<template>&...
    99+
    2023-06-29
  • 如何使用Vue3及Canvas实现简易的贪吃蛇游戏
    这篇“如何使用Vue3及Canvas实现简易的贪吃蛇游戏”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“如何使用Vue3及Ca...
    99+
    2023-07-06
  • vue js如何实现秒转天数小时分钟秒
    这篇文章给大家分享的是有关vue js如何实现秒转天数小时分钟秒的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。具体代码如下所示;SecondToDate: functi...
    99+
    2022-10-19
  • js/jq/css如何实现简易下拉菜单功能
    今天小编给大家分享一下js/jq/css如何实现简易下拉菜单功能的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。效果图预览一 ...
    99+
    2023-07-04
  • js如何通过Date对象实现倒计时动画效果
    小编给大家分享一下js如何通过Date对象实现倒计时动画效果,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!js通过Date对象实...
    99+
    2022-10-19
  • C++如何实现简易通讯录管理系统
    这篇文章主要介绍“C++如何实现简易通讯录管理系统”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“C++如何实现简易通讯录管理系统”文章能帮助大家解决问题。前言建议收藏,亲手写一遍代码,感受指针神奇的...
    99+
    2023-07-02
  • 如何通过js代码实现301跳转
    通过js代码实现301跳转的方法: 在对应的网页文件中使用此JS代码可实现301跳转,比如将不带www的域名跳转到带www的域名,代码如下:<script language=javascript> ...
    99+
    2022-10-21
  • 如何使用MySQL和Ruby实现一个简单的时钟功能
    如何使用MySQL和Ruby实现一个简单的时钟功能时钟功能在各种应用中经常会被使用到,它可以帮助我们记录时间、计时、定时等。在本文中,我们将介绍如何使用MySQL和Ruby来实现一个简单的时钟功能,并提供相应的代码示例。首先,我们需要创建一...
    99+
    2023-10-22
    MySQL Ruby 时钟功能
  • 如何实现一个简易的NpmInstall
    本篇文章给大家分享的是有关如何实现一个简易的NpmInstall ,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。现在写代码我们一般不会全部自己...
    99+
    2022-10-19
  • android自定义控件如何实现简易时间轴
    这篇“android自定义控件如何实现简易时间轴”除了程序员外大部分人都不太理解,今天小编为了让大家更加理解“android自定义控件如何实现简易时间轴”,给大家总结了以下内容,具有一定借鉴价值,内容详细步骤清晰,细节处理妥当,希望大家通过...
    99+
    2023-06-28
  • Java模仿微信如何实现零钱通简易功能
    本篇文章为大家展示了Java模仿微信如何实现零钱通简易功能,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。1. 需求描述使用Java 开发零钱通项目, 模仿微信实现简易功能,可以完成收益入账,消费,查...
    99+
    2023-06-22
  • vue如何实现简易的弹出框
    目录vue实现弹出框1.Template2.script => data 中定义3.script => methods 中定义关闭方法4.样式vue实现弹窗选择1.创建一...
    99+
    2022-11-13
  • C#如何实现简易的计算器
    这篇文章主要介绍了C#如何实现简易的计算器,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。C#实现简易的计算器的具体内容如下1 题目描述(1)Form1窗体设计界面如下:(2)...
    99+
    2023-06-14
  • Golang如何实现简易的rpc调用
    这篇文章主要介绍“Golang如何实现简易的rpc调用”,在日常操作中,相信很多人在Golang如何实现简易的rpc调用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Golang如何实现简易的rpc调用”的疑...
    99+
    2023-07-05
  • C#通过rabbitmq如何实现定时任务
    小编给大家分享一下C#通过rabbitmq如何实现定时任务,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!环境准备需要在MQ中进行安装插件 地址链接插件介绍地址:h...
    99+
    2023-06-15
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作