<!DOCTYPE html >
<html>
<head>
</head>
<body>
<canvas id="clock" width=" 500" height=" 500">
您的浏览器暂时不支持canvas标签,无法看到时钟!
</canvas>
<script type="text/javascript">
var clock = document.getElementById("clock");
var cxt = clock.getContext('2d'); function drawClock() {
cxt.clearRect(0, 0, 500, 500);
var now = new Date();
var sec = now.getSeconds();
var mi = now.getMinutes();
var hour = now.getHours();
hour = hour > 12 ? hour - 12 : hour;
hour = hour + mi / 60; //画表盘
cxt.lineWidth = 13;
cxt.strokeStyle = "blue";
cxt.beginPath();
cxt.arc(250, 250, 200, 0, 360, false);
cxt.closePath();
cxt.stroke();
//刻度
//时刻度
for (var i = 0; i < 12; i++) {
cxt.save();
//设置时针刻度的粗细
cxt.lineWidth = 7;
//设置时针刻度的颜色
cxt.strokeStyle = "#000";
//先设置0,0点
cxt.translate(250, 250);
cxt.rotate(i * 30 * Math.PI / 180); //角度*Math/180=弧度
cxt.beginPath();
cxt.moveTo(0, -170);
cxt.lineTo(0, -190);
cxt.closePath();
cxt.stroke();
cxt.restore();
}
//秒刻度
for (var i = 0; i < 60; i++) {
cxt.save();
cxt.lineWidth = 3;
cxt.strokeStyle = "#000";
cxt.translate(250, 250);
cxt.rotate(i * 6 * Math.PI / 180);
cxt.beginPath();
cxt.moveTo(0, -180);
cxt.lineTo(0, -190);
cxt.closePath();
cxt.stroke();
cxt.restore();
}
//时针
cxt.save();
cxt.lineWidth = 7;
cxt.strokeStyle = "#000";
cxt.translate(250, 250);
cxt.rotate(hour * 30 * Math.PI / 180);
cxt.beginPath();
cxt.moveTo(0, -140);
cxt.lineTo(0, 10);
cxt.closePath();
cxt.stroke();
cxt.restore(); //分针
cxt.save();
cxt.lineWidth = 5;
cxt.strokeStyle = "#000";
cxt.translate(250, 250);
cxt.rotate(mi * 6 * Math.PI / 180);
cxt.beginPath();
cxt.moveTo(0, -160);
cxt.lineTo(0, 15);
cxt.closePath();
cxt.stroke();
cxt.restore(); //秒针
cxt.save();
cxt.lineWidth = 3;
cxt.strokeStyle = "red";
cxt.translate(250, 250);
cxt.rotate(sec * 6 * Math.PI / 180);
cxt.beginPath();
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 = "gray";
cxt.fill();
cxt.stroke();
//画出时针,分针,秒针的交叉点
cxt.beginPath();
cxt.arc(0, -140, 3, 0, 360, false);
cxt.closePath();
cxt.fillStyle = "gray";
cxt.fill();
cxt.stroke();
cxt.restore();
}
drawClock();
window.setInterval(drawClock, 1000);
</script>
</body>
</html>

使用HTML5中的Canves标签制作时钟特效的更多相关文章

  1. html5中的video标签和audio标签

    不管是否承认,flash早已不像过往那样如日中天了.亚马逊全面放弃flash.苹果放弃flash.安卓也放弃了移动端的flash支持.事实上flash已经不太适合web开发了,因为HTML5中的vid ...

  2. 检测是否支持HTML5中的Video标签

    //检测是否支持HTML5 function checkVideo() { if (!!document.createElement('video').canPlayType) { var vidTe ...

  3. 让IE8支持html5中的video标签

    这是一篇综合几个前辈的解决方案. 使用video的时候,要遇到的问题. ①不兼容ie9及其以下版本 在<head>里添加两行, 参考张鑫旭前辈的博客,但是在ie8中薄播放. <!-- ...

  4. 认识HTML5中的新标签与新属性

    前端之HTML5,CSS3(一) HTML5中常用内容标签 header标签 header标签定义文档的页眉,基本语法:<header>content</header>. na ...

  5. html5中的容器标签和文本标签

    html5中的容器标签和文本标签 html中的容器级标签和文本级标签,css中的块级元素和行内元素是我们常常拿来比较的四个名词(行内块级暂时先不考虑). 容器标签 容器级的标签可以简单的理解为能嵌套其 ...

  6. html5-8 如何控制html5中的视频标签和音频标签

    html5-8 如何控制html5中的视频标签和音频标签 一.总结 一句话总结:找到视频或者音频的element对象,然后查手册看对应的方法或者属性就可以,里面有控制的. 1.如何控制html5中的视 ...

  7. HTML5中的语义标签兼容IE8以及更低版本的浏览器

    看某教程,说让HTML5的这些语义标签能够兼容低版本的浏览器,原文是“你可以设置css的display属性为block”.很好理解,就设置css样式为block嘛,那就直接设置咯: header, s ...

  8. HTML5中常用的标签(及标签的属性和作用)

    1.标签:<!DOCTYPE>作用:声明是文档中的第一成分,位于<html>标签之前. 2.标签:<html>作用:此元素可告知浏览器其自身是一个HTML文档.属性 ...

  9. ios vue2.0使用html5中的audio标签不能播放音乐

    我写了一个M端播放音乐的组件,使用html5的audio标签 然后我使用watch监测currentSong 在浏览器中看到audio渲染的如下: 单独访问渲染出来的audio中url可以播放音乐,为 ...

随机推荐

  1. Math对象

    <script type="text/javascript"> /* Math对象常用的方法: ceil 向上取整 floor() 向下取整 random() 随机数方 ...

  2. PrintStream打印流

    package file; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; impo ...

  3. recovery编译汉化

    当BoardConfig.mk中定义了recovery的字体且为中文字体时,自动编译为中文版,否则编译为英文版 例如: BOARD_USE_CUSTOM_RECOVERY_FONT := \" ...

  4. JSON stringify and parse

    来源 : http://javascript.ruanyifeng.com/stdlib/date.html //解析json也可以传入一个方法, 基本上和stringify差不多,不过是逆序的, 要 ...

  5. cf B. Fox Dividing Cheese

    http://codeforces.com/contest/371/problem/B #include <cstdio> #include <iostream> #inclu ...

  6. 转:Yii 常量的轻松管理

    问题 我经常在不同的地方使用模型中的常量(基本状态常量),当常量改变时我不得不在使用每处它的代码中修改. 获取常量 为了解决这个问题我使用了一个方法 getConstants(). public st ...

  7. linux教程之四

    相信不少想学习linux的新手们正愁不知道看什么linux学习教程好,下面小编给大家收集和整理了几点比较重要的教程,供大家学习,如需想学习更多的话,可到wdlinux学堂寻找更多教程.   linux ...

  8. 2014-07-25 改进自定义菜单与使用SVN进行协同开发

    今天是在吾索实习的第13天.今天没有做过多的代码设计,只进行了一些代码的分析与进一步优化.其中,发现创建自定义菜单的关键代码书写可分为两部分: JSON格式的字符串在.net中的语法书写: strin ...

  9. 非常华丽的jQuery/HTML5应用推荐

    jQuery确实是一个非常优秀的JavaScript框架,尤其是结合HTML5,更可以让网页变得生动有趣.今天向大家推荐一些非常华丽的jQuery/HTML5应用,废话不多说,直接看吧. 1.jQue ...

  10. zoj3658 Simple Function (函数值域)

    Simple Function Time Limit: 2 Seconds       Memory Limit: 32768 KB Knowing that x can be any real nu ...