H TML5 之 (4) 小项目一 时钟
这里做一个HTML5 入门的练手,一个小时钟项目,可以再上面拓展很多,程序员培养的就是思想
<!DOCTYPE HTML>
<html>
<head>
<title>Click</title>
<style>
#clock{
background:#abcdef;
}
</style>
</head>
<body>
<canvas id="clock" width="500" height="500" >
您的浏览器不支持标签,无法看到时钟
</canvas>
</body>
<script>
var clock = document.getElementById("clock");
var cxt = clock.getContext("2d"); function drawCloclk(){ cxt.clearRect(0,0,500,500);
//获取时间对象
var now = new Date();
var sec = now.getSeconds();
var min = now.getMinutes();
var hours = now.getHours();
//小时必须获取浮点类型
hours = hours+min/60;
//转换时间
hours = hours >12?hours-12:hours; //表盘 蓝色
cxt.lineWidth = 10;
cxt.strokeStyle="blue";
cxt.beginPath();
cxt.arc(250,250,200,0,360,false);
cxt.stroke();
cxt.closePath();
//刻度
for(var i=0;i<12;i++){
//开启异次元空间
cxt.save();
cxt.beginPath();
cxt.lineWidth = 10;
cxt.strokeStyle="#000";
//设置原点
cxt.translate(250,250);
//设置旋转角度
cxt.rotate(i*30*Math.PI/180);
//画线
cxt.moveTo(0,-170);
cxt.lineTo(0,-190);
cxt.stroke();
cxt.closePath();
cxt.restore();
}
//分刻度
for(var i=0;i<60;i++){
//开启异次元空间
cxt.save();
cxt.beginPath();
cxt.lineWidth = 5;
cxt.strokeStyle="#000";
//设置原点
cxt.translate(250,250);
//设置旋转角度
cxt.rotate(i*6*Math.PI/180);
//画线
cxt.moveTo(0,-180);
cxt.lineTo(0,-190);
cxt.stroke();
cxt.closePath();
cxt.restore();
}
//时针
//开启异次元空间
cxt.save();
cxt.beginPath();
cxt.lineWidth = 7;
cxt.strokeStyle="#000";
//设置原点
cxt.translate(250,250);
//设置旋转角度
cxt.rotate(hours*30*Math.PI/180);
//画线
cxt.moveTo(0,-140);
cxt.lineTo(0,10);
cxt.stroke();
cxt.closePath();
cxt.restore();
//分针
//开启异次元空间
cxt.save();
cxt.beginPath();
cxt.lineWidth = 5;
cxt.strokeStyle="#000";
//设置原点
cxt.translate(250,250);
//设置旋转角度
cxt.rotate(min*6*Math.PI/180);
//画线
cxt.moveTo(0,-160);
cxt.lineTo(0,15);
cxt.stroke();
cxt.closePath();
cxt.restore();
//秒针
//开启异次元空间
cxt.save();
cxt.beginPath();
cxt.lineWidth = 3;
cxt.strokeStyle="red";
//设置原点
cxt.translate(250,250);
//设置旋转角度
cxt.rotate(sec*6*Math.PI/180);
//画线
cxt.moveTo(0,-170);
cxt.lineTo(0,20);
cxt.closePath();
cxt.stroke();
cxt.beginPath();
//画交叉点
cxt.arc(0,0,5,0,360,false)
cxt.closePath();
cxt.fillstyle = "blue";
cxt.fill();
cxt.stroke();
cxt.beginPath();
//画交叉点
cxt.arc(0,-150,5,0,360,false)
cxt.closePath();
cxt.fillstyle = "blue";
cxt.fill();
cxt.stroke();
cxt.restore();
}
//使用周期循环函数setInternal(代码,时间),让时钟动起来
drawCloclk;
setInterval(drawCloclk,1000);
</script>
</html>
H TML5 之 (4) 小项目一 时钟的更多相关文章
- ESP32S2小项目-FM-网络时钟/电台-Arduino开发环境
ESP32S2小项目,FM,网络时钟/电台,Arduino开发环境 效果展示 @ 目录 ESP32S2小项目,FM,网络时钟/电台,Arduino开发环境 效果展示 开机动画: 网络时钟: FM模块: ...
- IOS-小项目(饿了么 网络部分 简单实现)
在介绍小项目之前,在此说明一下此代码并非本人所写,我只是随笔的整理者. 在介绍之前先展现一下效果图. 看过效果图大家应该很熟悉了,就是饿了么的一个界面而已,值得注意的是,实现时并没有采用本地连接,而是 ...
- 模拟XShell的小项目
不知道大家有没有用过XShell这款工具,这款工具通过windows可以远程操作处于开机状态的linux操作系统,也就是说把你的电脑和一台服务器连入网络,你通过输入服务器所在的IP地址建立一个会话就可 ...
- 小项目特供 贪吃蛇游戏(基于C语言)
C语言写贪吃蛇本来是打算去年暑假写的,结果因为ACM集训给耽搁了,因此借寒假的两天功夫写了这个贪吃蛇小项目,顺带把C语言重温了一次. 是发表博客的前一天开始写的,一共写了三个版本,第一天写了第一版,第 ...
- 【PHP小项目使用MVC架构】
小项目名称是雇员管理系统. mvc是一种项目的开发模式,中文名称为模式视图控制器,是强制程序员将数据的输入.处理.输出分开的一种开发模式. 在这个小项目中,控制器使用service作为后缀名. 项目u ...
- 又见angular----步一步做一个angular4小项目
这两天看了看angular4的文档,发现他和angular1.X的差别真的是太大了,官方给出的那个管理英雄的Demo是一个非常好的入门项目,这里给出一个管理个人计划的小项目,从头至尾一步一步讲解如何去 ...
- 【实战小项目】python开发自动化运维工具--批量操作主机
有很多开源自动化运维工具都很好用如ansible/salt stack等,完全不用重复造轮子.只不过,很多运维同学学习Python之后,苦于没小项目训练.本篇就演示用Python写一个批量操作主机的工 ...
- Qt小项目之串口助手控制LED
Qt小项目之串口助手控制LED 前言 最近刚学了一点Qt开发上位机,尝试着做个小软件练练手.查找了很多资料,做了一个简单的串口助手,可以实现串口基本发送和接收功能,支持中文显示,还可以控制STM32开 ...
- web实践小项目<一>:简单日程管理系统(涉及html/css,javascript,python,sql,日期处理)
暑假自学了些html/css,javascript和python,苦于学完无处练手几乎过目即忘...最后在同学的建议下做了个简单日程管理系统.借第一版完成之际,希望能将实践期间犯过的错误和获得的新知进 ...
随机推荐
- Learning WCF Chapter2 WCF Contracts and Serialization
So far I’ve talked about the standards behind it all,but in fact WCF hides most of this from the dev ...
- -_-#【video】
视频 HTML5 视频 HTML5的视频格式之争 移动端HTML5<video>视频播放优化实践 后备
- 使用SQL Server 2014内存数据库时需要注意的地方
作者 王枫发布于2014年7月4日 本文从产品设计和架构角度分享了Microsoft内存数据库方面的使用经验,希望你在阅读本文之后能够了解这些新的对象.概念,从而更好地设计你的架构. 内存数据库,指的 ...
- <转>如何将Chrome变成开发利器,开发者们在用这些插件
Chrome 浏览器具有强大的跨平台能力以及丰富的扩展插件,一直是许多开发者的首要选择.而利用许多 Chrome 插件,开发者们在开发流程中能够极大地提高开发效率.我们就整理了十款开发者常用的 Chr ...
- Unity 官方 Demo: 2DPlatformer 的 SLua 版本。
9月份时,趁着国庆阅兵的假期,将 Unity 官方 Demo: 2DPlatformer 移植了一个 SLua 版本,并放在了我的 GitHub 账号下:https://github.com/yauk ...
- android开发环境与工具使用相关备忘录
一.名称简介 1.ADT(Android Development Tools) 可以简单理解为在eclipse下开发安卓的插件或工具包. 查看当前ADT版本方法:help-> about ecl ...
- java数据结构之hash表
转自:http://www.cnblogs.com/dolphin0520/archive/2012/09/28/2700000.html Hash表也称散列表,也有直接译作哈希表,Hash表是一种特 ...
- pgsql自动安装shell脚本整理
前面不断在vm虚拟机上测试pgsql,发觉安装还是有些麻烦的. 所以就收集了一些 1,http://www.davidghedini.com/pg/entry/postgresql_9_5_scrip ...
- The server quit without updating PID file (mysql.pid)一次意外mysql停止运行备忘录
[root@iZ23tsvd9h4Z ~]# service mysqld status ERROR! MySQL (Percona Server) is not running, but lock ...
- c# 扩展方法奇思妙用集锦
本文转载:http://www.cnblogs.com/ldp615/archive/2009/08/07/1541404.html 其中本人觉得很经典的:c# 扩展方法奇思妙用基础篇五:Dictio ...