用HTML5的canvas实现一个炫酷时钟
导读:对于H5来说,canvas可以说是它最有特色的一个地方了,有了它之后我们可以随意的在网页上画各种各样的图形,做一些小游戏啊什么的。canvas这个标签的用法,在网上也有特别多的教程了,这里就不作介绍了。今天我们就用canvas来做一个小小的...
对于H5来说,canvas可以说是它最有特色的一个地方了,有了它之后我们可以随意的在网页上画各种各样的图形,做一些小游戏啊什么的。canvas这个标签的用法,在网上也有特别多的教程了,这里就不作介绍了。今天我们就用canvas来做一个小小的时钟。
那么首先在这个页面里面我使用了两个canvas,一个用来绘制静态的时钟表盘和刻度,另一个用来绘制时钟的三个指针,然后用定位让他们重合到一起。然后这里没什么好说的,下面附上代码。
JavaScript Code复制内容到剪贴板- 画表盘
- 画时针
- varplate=document.getElementById('plate');
- varneedles=document.getElementById('needles');
- needles.setAttribute('style','position:absolute; top:8px; left:8px; '); //这里因为chrome里面,body的magin值为8px,所以我这里就没设为0了。
- varcntP=plate.getContext('2d');
- varcntH=needles.getContext('2d');
- plate.width=800;
- plate.height=500;
- needles.width=800;
- needles.height=500;
到了这里准备工作就做完了,下面就准备绘制时钟了。我先定义了一个绘制时钟表盘的构造函数。
JavaScript Code复制内容到剪贴板- functiondrawclock(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){
- //获得表盘刻度两端的坐标
- varX=200+this.radius*Math.sin(6*i*Math.PI/180);
- varY=200-this.radius*Math.cos(6*i*Math.PI/180);
- varx=200+(this.radius-this.platelen)*Math.sin(6*i*Math.PI/180);
- vary=200-(this.radius-this.platelen)*Math.cos(6*i*Math.PI/180);
- //获得分钟数字的坐标
- varnumx=200+(this.radius-this.platelen-this.numLen)*Math.sin(6*i*Math.PI/180);
- varnumy=200-(this.radius-this.platelen-this.numLen)*Math.cos(6*i*Math.PI/180);
- //获得小时数字的坐标
- varnumX=200+(this.radius-this.platelen-this.NUMLEN)*Math.sin(6*i*Math.PI/180);
- varnumY=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(vari=0,coorObj; i
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: 用HTML5的canvas实现一个炫酷时钟
本文地址: https://pptw.com/jishu/663738.html