HTM5制作的闹钟

HTML5出来很久了一直没好好研究过,今天找视频看了,研究了一下,制作了一个闹钟。

效果图如下


  <div>
<canvas id="Clock" width="500" height="500">your broswer can not see the clock </canvas>
<script>

var clock = document.getElementById("Clock");
var cxt = clock.getContext("2d");
function DrawClock() {
//clear canvas //要先清空画布,才能保持画面的动画效果
cxt.clearRect(0, 0, 500, 500);
cxt.font = "20px Blackadder ITC";
cxt.fillText("My clock", 220, 150);
cxt.font = "14px Blackadder ITC";
cxt.fillText("---Made by Lan", 240, 170);
var image = new Image();
image.src = "1.png";
cxt.drawImage(image, 220, 280, 100, 100);
var now = new Date();
var sec = now.getSeconds();
var min = now.getMinutes();
var hour = now.getHours(); // must be hour+ min/60
hour = hour + min / 60;
hour = hour > 12 ? hour - 12 : hour;
//round, scale, niddle
cxt.beginPath();
cxt.arc(250, 250, 200, 0, 360, false);
cxt.strokeStyle = "#ABCDEF";
cxt.lineWidth = 9;
cxt.stroke();
cxt.closePath();
//scale 刻度,时刻
cxt.font = "30px Bold";
for (var i = 0; i < 12; i++) {
cxt.save();
cxt.lineWidth = 7;
cxt.strokeStyle = "Black";
cxt.translate(250, 250);
cxt.rotate(i * 30 * Math.PI / 180);
cxt.beginPath();
cxt.moveTo(0, -170);
cxt.lineTo(0, -190);
if (i == 0) {
cxt.fillText("12", -10, -145);
}
else {
cxt.fillText(i.toString(), -10, -145);
}
cxt.stroke();
cxt.closePath();
cxt.restore();
}
                  // 分
for (var j = 0; j < 60; j++) {
cxt.save();
cxt.lineWidth = 4;
cxt.translate(250, 250);
cxt.rotate(j * 6 * Math.PI / 180);

cxt.beginPath();
cxt.moveTo(0, -180);
cxt.lineTo(0, -190);
cxt.strokeStyle = "Black";

cxt.stroke();

cxt.closePath();
cxt.restore();
}
cxt.beginPath();
cxt.save();
cxt.lineWidth = 7;
cxt.strokeStyle = "Black";
cxt.translate(250, 250);
cxt.rotate(hour * 30 * Math.PI / 180);
cxt.moveTo(0, -150);
cxt.lineTo(0, 10);
cxt.stroke();
cxt.restore();
cxt.closePath();

cxt.beginPath();
cxt.save();
cxt.lineWidth = 5;
cxt.strokeStyle = "Black";
cxt.translate(250, 250);
cxt.rotate(min * 6 * Math.PI / 180);
cxt.moveTo(0, -130);
cxt.lineTo(0, 10);
cxt.stroke();
cxt.restore();
cxt.closePath();

cxt.beginPath();
cxt.save();
cxt.lineWidth = 3;
cxt.strokeStyle = "red";
cxt.fillStyle = "Black";
cxt.translate(250, 250);
cxt.rotate(sec * 6 * Math.PI / 180);//秒
cxt.moveTo(0, 150);
cxt.lineTo(0, -15);
cxt.stroke();

cxt.beginPath();
cxt.arc(0, 0, 5, 0, 360, false);
cxt.fillStyle = "gray";
cxt.strokeStyle = "red";
cxt.fill();
cxt.closePath();

cxt.beginPath();
cxt.arc(0, 130, 5, 0, 360, false);
cxt.fillStyle = "black";
cxt.strokeStyle = "red";
cxt.fill();
cxt.stroke();

cxt.restore();
cxt.closePath();

}
DrawClock();
setInterval(DrawClock, 1000);

</script>
</div>

需要注意的几个常见的方法

1. closePath,beginPath(),用路径画图的时候,需要注意在各个,打开路径,关闭路径

2. 在做旋转的时候要注意设置原点,translate(250,250);

 

HTM5制作的闹钟,布布扣,bubuko.com

时间: 2024-12-16 05:38:46

HTM5制作的闹钟的相关文章

使用cocos制作一个简易的小闹钟

使用cocos制作一个简易的小闹钟 本文转载至学习使用Cocos制作<闹钟> 使用的引擎版本是cocos2.1 具体开发过程指导 (1)Cocos Studio部分 1.打开Cocos工具,新建一个项目: 2.设置好相关的配置,点击完成,从而发布到Cocos Studio中: 3.Cocos Studio IDE介绍: 左上角的是开发常用的游戏元素.UI控件.容器等,可以像VS2013一样拖拽,并在右边设置对应的属性:左下角是资源导入,可以导入所需的图片背景:下面是时间戳,用于设置基于时间戳的

结对项目,闹钟

github代码地址: https://github.com/Accredit/CLOCK/blob/master/Clock.java 一.题目简介: ˇ这个小java程序是制作一个闹钟程序 ˇ设定闹钟会根据系统的时间而当作时钟来显示 ˇ用户可以根据自己的需要来设定闹钟时间,当到达用户设定的时间后 闹钟就会响起提示音,提示时间为一分钟 ˇ设定了两个类:Clock和SetTime, 分别用来设定闹钟和设定时间 二.结对分工 ˇ结对: 颉凌杰,杨洪宇 我(颉凌杰)代码分析与设计以及负责查询相关代码

双人结对项目-闹钟小程序

github代码地址: https://github.com/y654063871/Clock-/blob/master/Clock%20-java.txt 一.题目简介: ˇ这个小java程序是制作一个闹钟程序 ˇ设定闹钟会根据系统的时间而当作时钟来显示 ˇ用户可以根据自己的需要来设定闹钟时间,当到达用户设定的时间后 闹钟就会响起提示音,提示时间为一分钟 ˇ设定了两个类:Clock和SetTime, 分别用来设定闹钟和设定时间 二.结对分工 ˇ结对: 杨洪宇,颉凌杰 ˇ我(杨洪宇)负责程序代码

心理体会

我们团队有四个人,其中我是负责编程的,我们负责制作一个闹钟app,每天早晨叫醒自己. 首先,我们团队要有人负责编辑界面,然后,还有人负责测试. 最后, 我要先大概的计划一下步骤,然后每个人按照自己的分工来做自己的事情.我们会参考一些相关的书籍,然后根据自己的理解,做一个闹钟app.

第43章 RTC—实时时钟

第43章     RTC-实时时钟 全套200集视频教程和1000页PDF教程请到秉火论坛下载:www.firebbs.cn 野火视频教程优酷观看网址:http://i.youku.com/firege 43.1 RTC简介 RTC-real time clock,实时时钟,主要包含日历.闹钟和自动唤醒这三部分的功能,其中的日历功能我们使用的最多.日历包含两个32bit的时间寄存器,可直接输出时分秒,星期.月.日.年.比起F103系列的RTC只能输出秒中断,剩下的其他时间需要软件来实现,429的

Android随笔之——闹钟制作铺垫之AlarmManager详解

说实话,之前写的两篇博客Android广播机制Broadcast详解.Android时间.日期相关类和方法以及现在要写的,都算是为之后要写的闹钟应用做铺垫,有兴趣的话,大家可以去看看前两篇博客. 一.AlarmManager简介 对于一个闹钟应用的实现,个人觉得最主要的应该要属于AlarmManager了.AlarmManager称为全局定时器,字面意思就是闹钟管理(请原谅我蹩脚的英语),是Android中常用的一种系统级别的提示服务,在特定的时刻为我们广播一个指定的Intent.简单的说就是我

例题:制作闹钟。重点学习datetime的灵活运用,跳转语句

DateTime a = DateTime.Now;//获取电脑现在的时间                 DateTime nz = Convert.ToDateTime("2015-4-14 22:44");//定义闹钟的时间            while (true)            {                               a = a.AddMinutes(1);     //显示时间,一分钟加一分钟显示                Conso

闹钟类app构想

NABC--闹钟app N:我们打算针对那些易健忘的人来制作一款闹钟功能的记事本,具来说服务的对象有很多:有健忘的人,还有情侣,北漂的人及其父母(...),常年见不到亲人(双方),后期我们若提前完成基本的任务我们会加入一些新的痒点,在下面的C(竞争模块)会细说. A:先借鉴一个闹钟类的app,了解机制,采用敏捷开发:大致我想就是调用本地的录制工具,将录制好的事物保存在手机本地,在你所设定的时间上以通知栏的消息告知你(可伴有你所选的模式),最后就可以播放你所提前记录下来的事有点类似时间胶囊. B:

深入理解BOM系列第三篇——定时器应用(时钟、倒计时、秒表和闹钟)

× 目录 [1]时钟 [2]倒计时 [3]秒表[4]闹钟 前面的话 本文属于定时器的应用部分,分别用于实现与时间相关的四个应用,包括时钟.倒计时.秒表和闹钟.与时间相关需要用到时间和日期对象Date,详细情况移步至此 时钟 最简单的时钟制作办法是通过正则表达式的exec()方法,将时间对象的字符串中的时间部分截取出来,使用定时器刷新即可 <div id="myDiv"></div> <script> myDiv.innerHTML = /\d\d:\