H5 canvas圆形的时钟
今天用H5中的canvas标签做一个时钟,H5中有很多好用的新增标签,真的很不错。
1.canvas标签介绍
<canvas> 标签定义图形,比如图表和其他图像,你必须使用脚本来绘制图形。在画布上(Canvas)画一个红色矩形,渐变矩形,彩色矩形,和一些彩色的文字。

HTML5 <canvas> 元素用于图形的绘制,通过脚本 (通常是JavaScript)来完成.不过不是所有的浏览器都支持这个标签的,支持的有谷歌4.0,ie9.0,火狐2.0等。
2.时钟的绘制第一步
在html中添加以下代码,一个宽高都是100的画布。
<canvas id="myCanvas" width="100" height="100"></canvas>
3.用js开始绘制钟表
<script type="text/javascript">
var myCanvas = document.getElementById('myCanvas');
var c = myCanvas.getContext('2d');
function clock(){
c.clearRect(0,0,100,100);
var data = new Date();
var sec =data.getSeconds();
var min =data.getMinutes();
var hour=data.getHours(); c.save();
c.translate(50,50);
c.rotate(-Math.PI/2);
//分钟刻度线
for(var i=0;i<60;i++){ //画12个刻度线
c.beginPath();
c.strokeStyle = "#f00";
c.lineWidth = 1 ;
c.moveTo(45,0);
c.lineTo(40,0);
c.stroke();
c.rotate(Math.PI/30); //每个6deg画一个时钟刻度线
c.closePath();
}
//时钟刻度线
for(var i=0;i<12;i++){ //画12个刻度线
c.beginPath();
c.strokeStyle = "#000";
c.lineWidth = 2 ;
c.moveTo(45,0);
c.lineTo(40,0);
c.stroke();
c.rotate(Math.PI/6); //每个30deg画一个时钟刻度线
c.closePath();
}
//外表盘
c.beginPath();
c.strokeStyle = "pink";
c.arc(0,0,55,0,Math.PI*2);
c.lineWidth = 16 ;
c.stroke();
c.closePath(); //画时针
hour = hour>12?hour-12:hour;
// console.log(hour);
c.beginPath();
c.save();
c.rotate(Math.PI/6*hour+Math.PI/6*min/60+Math.PI/6*sec/3600);
c.strokeStyle = "yellowgreen";
c.lineWidth = 4 ;
c.moveTo(-25,0);
c.lineTo(40,0);
c.stroke();
c.restore();
c.closePath(); //画分针
// console.log(min);
c.beginPath();
c.save();
c.rotate(Math.PI/30*min+Math.PI/30*sec/60);
c.strokeStyle = "springgreen";
c.lineWidth = 3 ;
c.moveTo(-15,0);
c.lineTo(40,0);
c.stroke();
c.restore();
c.closePath(); //画秒针
c.beginPath();
c.save();
c.rotate(Math.PI/30*sec);
c.strokeStyle = "red";
c.lineWidth = 2 ;
c.moveTo(-20,0);
c.lineTo(40,0);
c.stroke();
c.restore();
c.closePath(); c.restore();
}
clock();
setInterval(clock,100);
</script>
4.得到下图的效果

时钟已经画完了,关于形状和颜色可以自己再修改的。这个标签的很多使用方法我就不一一的说了,下面这个地址,大家可以查看的 http://www.runoob.com/html/html5-canvas.html
H5 canvas圆形的时钟的更多相关文章
- 深夜,用canvas画一个时钟
深夜,用canvas画一个时钟 查看demo 这几天准备阿里巴巴的笔试,可以说已经是心力交瘁,自从阿里和蘑菇街的内推被刷掉之后,开始越来越怀疑起自己的能力来,虽然这点打击应该是微不足道的.毕竟校招在刚 ...
- canvas做的时钟,学习下
canvas标签只是图形容器,您必须使用脚本来绘制图形. getContext() 方法可返回一个对象,该对象提供了用于在画布上绘图的方法和属性.——获取上下文对象. getContext(" ...
- H5 canvas绘制出现模糊的问题
在之前做移动端小游戏幸运转盘.九宫格转盘,使用到了 canvas ,也是第一次在项目中使用 canvas 来实现. 近期测试人员反应 canvas 绘制的内容太模糊,心想着用 canvas 绘制出来的 ...
- h5 canvas 小球移动
h5 canvas 小球移动 <!DOCTYPE html> <html lang="en"> <head> <meta charset= ...
- h5 canvas 画图
h5 canvas 画图 <!DOCTYPE html> <html lang="en"> <head> <meta charset=&q ...
- canvas炫酷时钟
canvas炫酷时钟 实现的功能 主要用到canvas的一些基础api 直接看效果 html: <canvas id="myCanvas" width="500&q ...
- 通过H5的新标签canvas做出一个时钟的全过程,希望对初学者有帮助
最近学习了H5中的一个新标签canvas并且用它做出了一个时钟,最下面是成品图像,还不错吧,这只是我学习中的一个小demo,做得有点粗糙,但终究是做出来了,以后再写自己的网页主页再做一个好看点放上去. ...
- canvas绘制简易时钟
时钟绘制的非常简易,但该有的都有了. 效果图如下, <!DOCTYPE html> <html> <head lang="en"> <me ...
- html5 canvas 圆形抽奖的实例
年底没啥,抽空学习了canvas,写了个html5抽奖的代码,造了个轮子,有用的童鞋可以拿走. 其中,canvas.onclick触发抽奖行为,概率可以在core.lottery()函数上添加,美化也 ...
随机推荐
- Android开发之AsyncTask示例Demo
今天做了一个AsyncTask的小Demo,内含注释,通过此Demo,可以对AsyncTask有一个详细的了解 已经将项目上传到了GitHub上(程序有一个小bug,在第一次提交有说明,有解决方法请留 ...
- Android Studio开发遇到程序崩溃问题
在用Android Studio开发过程中,经常遇到程序本身没有错误,但运行起来却总是挂掉,具体有如下几个解决方案: 1.将运行在真机上的app卸载,重新运行安装 2.在Build选项中有一个clea ...
- 基于微软开发平台构建和使用私有NuGet托管库
本篇blog包含使用TFS2017,VS2017等平台和工具搭建和使用NuGet库等基本过程,为团体提供更加自动化和高效的研发活动支持. 作为以产品线或者以专属业务为扩展的项目类型的软件研发团体,都会 ...
- 我的java学习笔记
最近一直在自学C#和js,想着想把以前学的java学习笔记整理下发上来.
- iOSiOS开发之退出功能(易错)
如果,我们有两个控制器,第一个控制器是MainController,它是与Main.storyboard相关联的.第二个控制器是myController.假设myController中有一个退出按钮, ...
- webpack引入handlebars报错'You must pass a string or Handlebars AST to Handlebars.compile'
背景: webpack作为一个部分替代打包工具和模块化工具的优秀选择出现,作为尝试,也为了构建自己习惯的前端开发方式,我尝试了将webpack和自己常用handlebars模板引擎结合.整体项目背景为 ...
- css3圆环闪烁动画
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- Java并发编程:同步锁、读写锁
之前我们说过线程安全问题可以用锁机制来解决,即线程必要要先获得锁,之后才能进行其他操作.其实在 Java 的 API 中有这样一些锁类可以提供给我们使用,与其他对象作为锁相比,它们具有更强大的功能. ...
- php Redis常用命令
redis是一个很好的缓存工具,下面我们就来介绍一下他怎么使用 启动 Redis 服务src/redis-server或者src/redis-server redis.conf src/Redis-s ...
- 搞定:Enter passphrase for key提示
使用ssh-genkey生成公用key,但是自己使用时会多次提示,Enter passphrase for key,这儿给出如何解决. 在${HOME}/.bashrc中增加如下代码: alias a ...