html5初體驗,canvas模擬window畫圖(還有未解決問題)

本次代碼編寫,只是html5新功能的一次體驗,canvas功能,其中因爲寫熟練了jquery,反而基本的javascript代碼中操作DOM的語法都忘了乾淨,參考了網上的一些寫法以及js手冊,基本完成了模擬畫圖中的畫線條功能。

提幾個問題,

問題一、這裏的作法是當mousemove的時候會調用lineTo的方法,如果不用線條,變爲畫圓,用arc方法,那麼理想狀態下,應該是一個一個緊密排列的圓圈,也可以組成一條線,可是實際是做不到的,鼠標移動太快的時候,就會出現空斷,還沒有具體研究,暫時認爲是反應不過來。。。

好的吧,再提一個問題,

問題二、基本跟canvas相關的指定數值時,都不帶單位,即我們常見的px pt em之類的,只寫數字,那這個地方默認的單位是什麼

<!DOCTYPE HTML>
<html>
<head>
<style type="text/css"> 
body{font-size:70%;font-family:verdana,helvetica,arial,sans-serif;}
.colorTable div{width:30px;height:30px;float:left;border:2px solid;border-style: groove;}
.red{background-color:red}
.green{background-color:green}
.blue{background-color:blue}
.yellow{background-color:yellow}
.black{background-color:black}
</style>
<script type="text/javascript"> 
        //用於指定畫筆顏色
	var paintColor = "#000";
        //頁面加載時
        window.onload = function(){
		var c = document.getElementById("myCanvas");
		var cxt = c.getContext("2d");
		c.onmousedown = function(event){
			var event = window.event;
			var x = event.clientX - c.offsetLeft;
			var y = event.clientY - c.offsetTop;	
			cxt.moveTo(x,y);
			//爲了在改變顏色時,不會影響到之前畫的,所以另外開啓新的路徑,beginPath方法
                        cxt.beginPath();
			document.onmousemove = function(event){
				var event = window.event;
				var x = event.clientX - c.offsetLeft;
				var y = event.clientY - c.offsetTop;
				cxt.lineCap="round";
				cxt.lineWidth=10;
				cxt.lineTo(x,y);
				cxt.strokeStyle = paintColor;
				cxt.stroke();
			};
			document.onmouseup = function(event){
				document.onmousemove = null ;
				document.onmouseup = null ;
			};
		};
	};
        //改變畫筆顏色 
        function changeColor(color){
		paintColor = color ;
	}
</script>
</head>

<body style="margin:0px;">

<canvas id="myCanvas" style="border:1px solid #c3c3c3;" width=1024 height=768></canvas>
<div class="colorTable">
	<div class="red" onclick="changeColor('#F00')"></div>
	<div class="green" onclick="changeColor('#0F0')"></div>
	<div class="blue" onclick="changeColor('#00F')"></div>
	<div class="yellow" onclick="changeColor('#0FF')"></div>
	<div class="black" onclick="changeColor('#000')"></div>
</div> 
</body>
</html>


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章