您现在的位置是:网站首页> 编程资料编程资料
用HTML5的canvas实现一个炫酷时钟效果Html5 canvas实现粒子时钟的示例代码HTML写一个网页动态时钟HTML5实现可缩放时钟代码使用html5 canvas 画时钟代码实例分享用HTML5制作数字时钟的教程html5绘制时钟动画html5时钟实现代码HTML 罗盘式时钟的实现
2023-10-13
317人已围观
简介 下面小编就为大家带来一篇用HTML5的canvas实现一个炫酷时钟效果。小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
对于H5来说,canvas可以说是它最有特色的一个地方了,有了它之后我们可以随意的在网页上画各种各样的图形,做一些小游戏啊什么的。canvas这个标签的用法,在网上也有特别多的教程了,这里就不作介绍了。今天我们就用canvas来做一个小小的时钟。
那么首先在这个页面里面我使用了两个canvas,一个用来绘制静态的时钟表盘和刻度,另一个用来绘制时钟的三个指针,然后用定位让他们重合到一起。然后这里没什么好说的,下面附上代码。
JavaScript Code复制内容到剪贴板
- 画表盘
- 画时针
JavaScript Code复制内容到剪贴板
- var plate=document.getElementById('plate');
- var needles=document.getElementById('needles');
- needles.setAttribute('style','position:absolute;top:8px;left:8px;'); //这里因为chrome里面,body的magin值为8px,所以我这里就没设为0了。
- var cntP=plate.getContext('2d');
- var cntH=needles.getContext('2d');
- plate.width=800;
- plate.height=500;
- needles.width=800;
- needles.height=500;
到了这里准备工作就做完了,下面就准备绘制时钟了。我先定义了一个绘制时钟表盘的构造函数。
JavaScript Code复制内容到剪贴板
- function drawclock(cnt,radius,platelen,linewidth,numLen,NUMLEN){
- this.cnt=cnt;
- this.radius=radius;
- this.platelen=platelen;
- this.linewidth=linewidth;
- this.numLen=numLen;
- this.NUMLEN=NUMLEN;
- this.getCalibCoor=function(i){
- //获得表盘刻度两端的坐标
- var X=200+this.radius*Math.sin(6*i*Math.PI/180);
- var Y=200-this.radius*Math.cos(6*i*Math.PI/180);
- var x=200+(this.radius-this.platelen)*Math.sin(6*i*Math.PI/180);
- var y=200-(this.radius-this.platelen)*Math.cos(6*i*Math.PI/180);
- // 获得分钟数字的坐标
- var numx=200+(this.radius-this.platelen-this.numLen)*Math.sin(6*i*Math.PI/180);
- var numy=200-(this.radius-this.platelen-this.numLen)*Math.cos(6*i*Math.PI/180);
- //获得小时数字的坐标
- var numX=200+(this.radius-this.platelen-this.NUMLEN)*Math.sin(6*i*Math.PI/180);
- var numY=200-(this.radius-this.platelen-this.NUMLEN)*Math.cos(6*i*Math.PI/180);
- return {X:X,Y:Y,x:x,y:y,numx:numx,numy:numy,numX:numX,numY:numY};
- };
- this.drawCalibration=function(){ //画刻度
- for(var i=0,coorObj;i<60;i++){
- coorObj=this.getCalibCoor(i);
- this.cnt.beginPath();
- this.cnt.moveTo(coorObj.X,coorObj.Y);
- this.cnt.lineTo(coorObj.x,coorObj.y);
- this.cnt.closePath();
- this.cnt.lineWidth=this.linewidth;
-
相关内容
- HTML5进阶段内联标签汇总(小篇)浅谈html5标签css3的常用样式html5中的一些标签学习(心得)HTML5新增加标签和功能概述浅谈Html5中视频 音频标签 进度条的问题关于HTML5语义标签的实践(blog页面)html5基于canvas实现的文字标签云3D旋转动画特效源码HTML5之语义标签介绍HTML5不支持标签和新增标签详解浅析HTML5中header标签的用法常用的HTML5列表标签
- 关于HTML5语义标签的实践(blog页面)浅谈html5标签css3的常用样式html5中的一些标签学习(心得)HTML5新增加标签和功能概述浅谈Html5中视频 音频标签 进度条的问题HTML5进阶段内联标签汇总(小篇)html5基于canvas实现的文字标签云3D旋转动画特效源码HTML5之语义标签介绍HTML5不支持标签和新增标签详解浅析HTML5中header标签的用法常用的HTML5列表标签
- HTML5学习心得总结(推荐)html 隐藏滚动条的简单实现HTML基础重点_一般标签、常用标签和表格HTML制作个人简历的简单实现详解HTML中table表格的frame和rules属性HTML的form表单标签用法学习教程HTML中的超链接标签使用教程HTML中table表格标签的基础学习教程HTML基础必看---表单,图片热点,网页划区和拼接详解
- 全民英雄无紫卡时如何最强搭配 全民英雄搭配技巧攻略_手机游戏_游戏攻略_
- 怒斩轩辕什么职业好 各职业技能解析_手机游戏_游戏攻略_
- 钻石矿工卓越版 道具作用解析_手机游戏_游戏攻略_
- 全民英雄绿杖获得方法攻略 九宫格抽装备技巧分析_手机游戏_游戏攻略_
- 全民英雄技能书获得方法攻略 全民英雄技能书如何获得_手机游戏_游戏攻略_
- 全民英雄光法装备推荐 全民英雄光法出装攻略_手机游戏_游戏攻略_
- 全民英雄紫卡英雄哪个值得培养 紫卡英雄哪个好_手机游戏_游戏攻略_
点击排行
本栏推荐
