HTML 5のキャンバスを理解するための簡単な描画アプリケーションを作成しています。問題は、キャンバス要素内にマウスの位置が正しくないように見えないことです。私は、この問題に対処するgetting mouse position with javascript within canvasのようなstackoverflowの他の質問を見ましたが、その解決策は私を助けてくれないようです。ここでHTML 5キャンバス内のマウスの位置
は私のコードです:私はここで間違って
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Untitled Document</title>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js" type="text/javascript"></script>
<style type="text/css">
#test {
border: solid black 1px;
width: 500px;
height: 500px;
}
</style>
<script type="text/javascript">
$(function(){
var canvas=document.getElementById('test');
if(canvas.getContext){
var ctx =canvas.getContext('2d');
var draw = false;
ctx.strokeStyle = "rgb(200,0,0)";
ctx.lineWidth = 3;
ctx.lineCap = "round";
$('#test').mousedown(function(){draw=true;});
$('#test').mouseup(function(){draw=false;});
$('#test').mousemove(function(e){
if(draw){
var x , y;
x = e.layerX;
y = e.layerY;
ctx.moveTo(x,y);
ctx.lineTo(x+1,y+1);
ctx.stroke();
}
});
}
});
</script>
</head>
<body>
<canvas id="test"></canvas>
</body>
</html>
何をしているのですか?私はChrome/Firefoxの両方でこれをテストしました。
おかげで働いていたキャンバス上のあなたのマウスの動きを更新すると宣言されたと仮定! CSSの幅と高さがキャンバスの座標系を定義していないようです。私は仕様をもっと慎重に読んでいたはずです。 – kartikq