最近私はHTML5キャンバスで遊んでいましたが、私がしたいことの1つはキャンバスで簡単なページを作成し、クリックするとどこにでも円を描くことです。私はそれが動作するはずのようないくつかのコードを持って、私はいくつかのコンソール出力でデバッグしようとしてきましたが、私は瞬間にエラーを見ることができませんでした。HTML5キャンバスサークルクリック時
私はCodepenを使用していますので、コンソールの機能が完全にどのように機能しているのかは不明ですが、残念ながら私のラップトップではデベロッパーコンソールをChromebookで使用できません。
誰かが見てみることができますか?私はここにコードを入れ、ペンへのリンクもドロップします。ありがとう!
HTML:
<canvas id="canvas" onclick="drawCircle(event)"></canvas>
CSS:
canvas {
position: relative;
background: #f1c40f;
width: 100%;
height: 100%;
}
JS:
var c = document.getElementById("canvas");
var ctx = c.getContext("2d");
function drawCircle(e) {
var pos = getCursorPosition(c, e);
var clickX = pos.x;
var clickY = pos.y;
ctx.fillStyle = "#2980b9";
ctx.beginPath();
ctx.arc(clickX, clickY, 10, 0, 2 * Math.PI);
ctx.fill();
console.log(clickX, clickY);
console.log("drawcircle");
}
function getCursorPosition(canvas, e) {
// Gets click position
rect = canvas.getBoundingClientRect();
console.log('getcursorpos');
return {
x: e.clientX - rect.left,
y: e.clientY - rect.top
};
}
Codepenリンク:https://codepen.io/wolverine1621/pen/gWvjgx
すべてのヘルプは高く評価されます。これはおそらくかなりシンプルなものですが、これは実際に初めてキャンバスを使って作業しているので、どんな情報も役立ちます!
ありがとうございます!
ありがとうございました!私はそれがウィンドウの全体にまたがっていないキャンバスを持つことに基づいていると信じて以来、私は保存するために何かになる前に座標を決定するために私が使った方法でしたか? – Wolverine1621
キャンバスのオフセット位置をクリック位置に加えて使用することをお勧めします。キャンバスの解像度を反映していないので、境界矩形を避けるようにしてください(たとえば、キャンバスのスタイルを600ピクセルに設定できますが、幅が300に設定されていると、各ピクセルは2ピクセルになり、あなたは600ではないように300) –