<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<title>Examples</title>
<meta name="description" content="">
<meta name="keywords" content="">
<link href="" rel="stylesheet">
<style>
canvas{
background: #eee;
}
</style>
<script>
window.onload=function(){
var con=document.getElementById('con');
var oCanvas=con.getContext("2d");
var startX=200;
var startY=200;
var radius=100; setInterval(function(){
oCanvas.clearRect(0, 0, 400, 400);
// 阴影
oCanvas.shadowColor="#888";
oCanvas.shadowOffsetX=1;
oCanvas.shadowOffsetY=1;
oCanvas.shadowBlur=3; // 渐变
var grd=oCanvas.createRadialGradient(startX, startY,1, startX, startY,100);
grd.addColorStop(0, '#efefef');
grd.addColorStop(1, "#cecece");
oCanvas.fillStyle=grd;
oCanvas.lineWidth=5;
oCanvas.beginPath();
oCanvas.strokeStyle="#a34";
oCanvas.arc(startX, startY, radius, 0, 2*Math.PI);
oCanvas.stroke();
oCanvas.fill(); // 去掉阴影
oCanvas.shadowColor="#888";
oCanvas.shadowOffsetX=0;
oCanvas.shadowOffsetY=0;
oCanvas.shadowBlur=0; // 画刻度
dragMark();
var myDate=new Date();
var H=myDate.getHours()*30+myDate.getMinutes()/2-90;
var M=myDate.getMinutes()*6-90;
var S=myDate.getSeconds()*6-90;
// 时针
dragT("#000",4,55,H);
// 分针
dragT("#888",3,65,M);
// 秒针
dragT("#f10",2,80,S);
// 画中心点
oCanvas.beginPath();
oCanvas.fillStyle="#ccc";
oCanvas.arc(200, 200, 6, 0, 2*Math.PI);
oCanvas.fill();
}, 1000); function dragT(color,lw,radius,angle){
oCanvas.beginPath();
oCanvas.strokeStyle=color;
oCanvas.lineWidth=lw;
oCanvas.moveTo(startX, startY);
oCanvas.lineTo(startX+radius*Math.cos(angle*Math.PI/180), startY+radius*Math.sin(angle*Math.PI/180));
oCanvas.stroke();
} function dragMark(){
for(var i = 0; i < 60; i++) {
var lw=2;
var radius1=radius-5;
var angle=i*6*Math.PI/180;
oCanvas.strokeStyle="#888";
if (i%5==0) {
radius1=radius-8;
lw=3;
oCanvas.strokeStyle="#666";
};
// if(i%15==0){
// var s=(i*6-90)*Math.PI/180;
// oCanvas.fillStyle="#000"
// oCanvas.fillText(i/5, startX+(radius-15)*Math.cos(s), startY+(radius-15)*Math.sin(s));
// }
oCanvas.lineWidth=lw;
oCanvas.beginPath();
oCanvas.moveTo(startX+radius*Math.cos(angle), startY+radius*Math.sin(angle));
oCanvas.lineTo(startX+radius1*Math.cos(angle), startY+radius1*Math.sin(angle));
oCanvas.stroke();
}; }
}
</script>
</head>
<body>
<canvas width="400" height="400" id="con"></canvas>
</body>
</html>

 

效果图~

HTML5小时钟的更多相关文章

  1. 推荐10款超级有趣的HTML5小游戏

    HTML5的发展速度比任何人的都想像都要更快.更加强大有效的和专业的解决方案已经被开发......甚至在游戏世界中!这里跟大家分享有10款超级趣味的HTML5游戏,希望大家能够喜欢! Kern Typ ...

  2. HTML5小游戏UI美化版

    HTML5小游戏[是男人就下一百层]UI美化版 之前写的小游戏,要么就比较简单,要么就是比较难看,或者人物本身是不会动的. 结合了其它人的经验,研究了一下精灵运动,就写一个简单的小游戏来试一下. 介绍 ...

  3. 使用HTML5制作时钟

    之前看到别人用HTML5制作时钟,自己也写了一个,这是很久以前写的了,没有注释,现在自己看都晕了(注释的重要性就体现在这边了),找时间加上注释,让自己和别人都比较好理解. <!DOCTYPE h ...

  4. 【python】实现一个python编程的小时钟!

    [本实验内容] 1.GUI.PyQT5介绍2.实现此次实验效果 [一 GUI.PyQt5介绍] 1.Python简介 2.GUI介绍 几个常用的Python GUI库: (1)wxPython (2) ...

  5. WPF制作的小时钟

    原文:WPF制作的小时钟 周末无事, 看到WEB QQ上的小时钟挺可爱的, 于是寻思着用WPF模仿着做一个. 先看下WEB QQ的图: 打开VS, 开始动工. 建立好项目后, 面对一个空荡荡的页面, ...

  6. js写个小时钟

    原生js写个小时钟 一.代码 今天美化博客园自学的哈,分享一下 <!--标题变成时钟--> <div id="Header1_HeaderTitle">&l ...

  7. Python自制小时钟,并转换为exe可执行程序详解

    一,简介Python写完程序,要靠命令来执行太LOW,太低调了,还不华丽了. 再说别人的电脑,都没有Python库,怎么执行,还能不能愉快的一起玩耍了. 所以哪怕只会写一个HelloWorld,也要弄 ...

  8. css3-手把手 transform 小时钟

    学习css3ing,正在学习transfomr,突发奇想用此做个小时钟,开始吧: 准备前期工作,把时钟的表盘,时分秒针,实时时间标签 的大概样子做好,效果如图: html代码如下: <div c ...

  9. Html5绘制时钟

    最近在对Html5比较感兴趣,就用空闲时间做一些小例子进行练习,今天绘制一个走动的时钟,具体如下图所示: 具体思路在上图已有说明,代码如下: <script type="text/ja ...

随机推荐

  1. Java对数组的操作(二)——集合与数组的切换

    在Java开发中经常遇见集合与数组的互相切换,怎样实现呢,呵呵呵,非常easy: import java.util.ArrayList; import java.util.Arrays;       ...

  2. Eclipse安装ADT失败解决办法

    Eclipse的版本是3.5.2,配置Android的开发环境时遇到问题…… 按照Android官方文档一步步安装,到了安装Eclipse的ADT插件时,提示“requires 'org.eclips ...

  3. android122 zhihuibeijing 新闻中心NewsCenterPager加载网络数据实现

    新闻中心NewsCenterPager.java package com.itheima.zhbj52.base.impl; import java.util.ArrayList; import an ...

  4. linux-insides-cn-BOOK

    https://www.gitbook.com/book/xinqiu/linux-insides-cn/details https://www.gitbook.com/book/looly/elas ...

  5. VIM 分割窗口

    VIM 分割窗口     *08.1*  分割窗口 打开新窗口最简单的命令如下: :split 这个命令把屏幕分解成两个窗口并把光标置于上面的窗口中: +----------------------- ...

  6. js重写原型对象

    首先看两段很相似的代码: 1. function Person(){} Person.prototype = { constructor:Person, name:"Nic", a ...

  7. 关于Git中的一些常用的命令

    深入了解git的checkout命令 检出命令(git checkout)是Git最常用的命令之一,同时也是一个很危险的命令. 因为这条命令会重写工作区.检出命令的用法如下: 用法一: git che ...

  8. 聊聊css盒子模型

    css盒子模型原理: 在网页设计中常听的属性名:内容(content).填充/内边距(padding).边框(border).外边距(margin), CSS盒子模式都具备这些属性. 这些属性我们可以 ...

  9. socket编程发送GET请求

    可以根据几根url地址,分析出主机,地址,协议等,然后用封装成的类拼接成GET请求信息,用fsockopen连接主机,进行读取操作,获取响应信息,打印 <?php //http连接接口 inte ...

  10. 20160505-hibernate入门2

    基本概念和CURD 开发流程 1由Domain object -> mapping->db.(官方推荐) 2由DB开始,用工具生成mapping和Domain object.(使用较多) ...