欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

HTML5組件Canvas實現(xiàn)電子鐘-創(chuàng)新互聯(lián)

基本思路:

專注于為中小企業(yè)提供網(wǎng)站設(shè)計、成都網(wǎng)站建設(shè)服務(wù),電腦端+手機(jī)端+微信端的三站合一,更高效的管理,為中小企業(yè)解放免費做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動了上千家企業(yè)的穩(wěn)健成長,幫助中小企業(yè)通過網(wǎng)站建設(shè)實現(xiàn)規(guī)模擴(kuò)充和轉(zhuǎn)變。

首先繪制一個矩形背景,設(shè)置顏色為灰色。在背景上繪制一個簡單的矩形外邊框,然后再繪

制一個內(nèi)邊框,接著加載選定的圖像做為電子鐘內(nèi)部的背景圖片。然后開始繪制時鐘刻度,

繪制分鐘刻度,最后獲取當(dāng)前系統(tǒng)時間,繪制時分秒三個手柄。

技術(shù)要點:

使用HTML5的Canvas 2D繪制對象,主要使用context.save()與context.restore()方法來保存

繪制狀態(tài)和重置繪制狀態(tài),使用Transform和fillRect()方法來繪制時鐘和分鐘刻度。使用

drawImage()方法來繪制背景圖片,使用setTimeout()方法來刷新時間顯示。

代碼詳解:

 獲取HTML5 Canvas繪制對象的代碼如下:

var canvas = document.getElementById("canvas1"); ctx = canvas.getContext("2d"); ctx.clearRect(0, 0, 500, 500);

繪制時鐘刻度的代碼如下:

		    var sin = Math.sin(Math.PI/6);   		    var cos = Math.cos(Math.PI/6);  		    ctx.translate(245, 245); 		    for (var i=0; i <= 12; i++) {   		    	// top 				ctx.fillRect(160,-7.5,30,10); 				ctx.strokeRect(160,-7.5,30,10); 				ctx.transform(cos, sin, -sin, cos, 0, 0);  	 		    }
繪制分鐘分鐘刻度的代碼如下:

		    var sin = Math.sin(Math.PI/30);   		    var cos = Math.cos(Math.PI/30);  		    for (var i=0; i <= 60; i++) {   				ctx.fillRect(170,-5,10,2); 				ctx.transform(cos, sin, -sin, cos, 0, 0); 	 		    }

保存制狀態(tài)代碼如下:

ctx.translate(245, 245); ctx.save();
恢復(fù)繪制狀態(tài)代碼如下:

ctx.restore();

運行效果如下:

HTML5 組件Canvas實現(xiàn)電子鐘

程序完全源代碼如下:

<html> <head> <script> 	window.onload = function() { 		clockHand(); 	}; 	 	function clockHand() { 		var canvas = document.getElementById("canvas1"); 		ctx = canvas.getContext("2d"); 		ctx.clearRect(0, 0, 500, 500); 		 		// create background rectangle 		// ctx.lineWidth = 10;   		ctx.fillStyle = "gray"; 		ctx.fillRect(0,0,500,500); 		 		// draw frame 		ctx.lineWidth = 10;   		ctx.strokeStyle = "green"; 		ctx.strokeRect(0,0,500,500); 		 		// draw author infomation 		ctx.fillStyle = "blue"; 		ctx.font = "20px Times New Roman"; 		ctx.fillText("-created by gloomyfish", 150, 30); 		 		// draw inner rectangle 		ctx.lineWidth = 10;   		ctx.strokeStyle = "black"; 		ctx.strokeRect(45,45,400,400); 		 		// create background image 		var img=new Image(); 		img.src="background.png"; 		img.onload = function() {  		    ctx.drawImage(img,45,45,400,400); 		    ctx.save(); 			// draw marker unit 			ctx.lineWidth = 2; 		    ctx.fillStyle = "purple"; 		    ctx.strokeStyle = "black"; 		    var sin = Math.sin(Math.PI/6);   		    var cos = Math.cos(Math.PI/6);  		    ctx.translate(245, 245); 		    for (var i=0; i <= 12; i++) {   		    	// top 				ctx.fillRect(160,-7.5,30,10); 				ctx.strokeRect(160,-7.5,30,10); 				ctx.transform(cos, sin, -sin, cos, 0, 0);  	 		    } 		     		    // transform back center point 		     		    // ctx.translate(245, 245); 		    var sin = Math.sin(Math.PI/30);   		    var cos = Math.cos(Math.PI/30);  		    for (var i=0; i <= 60; i++) {   				ctx.fillRect(170,-5,10,2); 				ctx.transform(cos, sin, -sin, cos, 0, 0); 	 		    } 		    ctx.restore(); 		    // top 			ctx.fillText("12", 233,100); 			 			// bottom 			ctx.fillText("6", 240,400); 			 			// left 			ctx.fillText("9", 90,252); 			 			// right 			ctx.fillText("3", 395,250); 			 			// get time 			ctx.save(); 			ctx.translate(245, 245); 			ctx.save(); 			 			// dynamic show time 			var now=new Date(); 			var hrs=now.getHours(); 			var min=now.getMinutes(); 			var sec=now.getSeconds();  			//Draw hour hand 			ctx.rotate(Math.PI/6*(hrs+(min/60)+(sec/3600))); 			ctx.beginPath(); 			ctx.moveTo(0,10); 			ctx.lineTo(0,-60); 			ctx.stroke(); 			ctx.restore(); 			ctx.save(); 			 			//Draw minute hand 			ctx.rotate(Math.PI/30*(min+(sec/60))); 			ctx.beginPath(); 			ctx.moveTo(0,20); 			ctx.lineTo(0,-110); 			ctx.stroke(); 			ctx.restore(); 			ctx.save(); 			 			//Draw second hand 			ctx.rotate(Math.PI/30*sec); 			ctx.strokeStyle="#E33"; 			ctx.lineWidth = 2; 			ctx.beginPath(); 			ctx.moveTo(0,20); 			ctx.lineTo(0,-110); 			ctx.stroke(); 			ctx.restore(); 			 			// finally store to originall point 			ctx.restore(); 			setTimeout(clockHand,1000); 		}; 	} </script> </head> <body bgcolor="#E6E6FA"> 	<canvas id="canvas1" width="500" height="500">electronic clock</canvas> </body> </html>

不足之處:

每次都刷新加載image對象不怎么好,我是在google瀏覽器中測試的,建議在

google瀏覽器中運行上面代碼。

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。

文章名稱:HTML5組件Canvas實現(xiàn)電子鐘-創(chuàng)新互聯(lián)
鏈接URL:http://aaarwkj.com/article24/dippce.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站內(nèi)鏈品牌網(wǎng)站設(shè)計、App開發(fā)、虛擬主機(jī)、全網(wǎng)營銷推廣、商城網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

小程序開發(fā)
男同午夜视频在线观看| 久久一区二区三区播放| 国产精品国产亚洲av| 亚洲熟女av一区少妇| 亚洲免费av一区二区| 国产另类极品熟女露脸自拍| 亚洲成熟中老妇女视频| 国产亚洲综合久久系列| av天堂男人站在线观看| 96热久久这里只有精品| 国产精品亚洲av性色| 中文欧美一区二区精品| 在线观看高清欧美国产视频| 亚洲国产精品久久久精品| 久久国产精品99久久久| 欧美日韩国产综合在线观看| 欧美日韩亚洲精品一区二区三区| 一区二区三区视频免费观看| 久久国产精品一区av瑜伽| 韩国日本午夜福利在线| 一区二区三区四区蜜桃av| 操女逼无遮挡国产av| 白白色成人永久在线观看视频| 亚洲欧美日韩一区中文字幕| 中文字幕人妻熟人妻熟丝| 在线中文字幕av电影| 日韩高清av一区二区| 久久激情日本人妻av免费| 18禁成年大片免费网站| 一区二区不卡日韩av| 日韩无码一区二区视频| 亚洲av网站女性向在线观看| 99久久婷婷免费国产综合精品| 亚洲精品一区二区播放| 亚洲精品福利一二三区| 日本免费播放一区二区视频 | 蜜桃视频手机在线观看| 久久国产亚洲精品赲碰热| 日韩黄色大片免费在线观看| 人人妻人人澡人人爱| 国产一区二区三区本色|