私はjqueryとhtml5キャンバスを勉強しています。私がしたいのは単純なhtml5の描画例です。マウスが動くと、マウスの下に赤い四角形が描かれます。キャンバス内でjavascriptでマウス位置を取得
私のコードは単純ですが、キャンバス内でマウスカーソルの位置を取得するのに問題があります。
今、x = event.offsetX;を使用しています。マウスの位置を取得します。これはクロムでうまく動作しますが、firefoxの場合は動作しません。コードをx = event.layerXに変更しました。レイヤーXは、キャンバスの位置ではなく、ウェブページに対する私のマウスの位置であるようです。私はいつもオフセットを見るからです。
私は最初に、firefoxの下で正しいマウスの位置を得るために行うべき正しいことは何ですか。第二に、どうすればfirefox、chrome、safari、operaのために動作するコードを書くことができますか?あなたは、互換性を心配する必要はありません
<!doctype html />
<html><head>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript">
$(document).ready(
function(){
var flip = document.getElementById('flip');
var context = flip.getContext('2d');
context.fillStyle = "rgb(255,255,255)";
context.fillRect(0, 0, 500, 500);
$("a").click(function(event){alert("Thanks for visiting!");});
$("#flip").mousemove(function(event){
var x, y;
x = event.layerX;
y = event.layerY;
//alert("mouse pos"+event.layerX);
var flip = document.getElementById('flip');
var context = flip.getContext('2d');
context.fillStyle = "rgb(255,0,0)";
context.fillRect(x, y, 5, 5);
}
);
}
);
</script>
</head> <body bgcolor="#000000"> <a href="http://jquery.com/">jQuery</a><canvas id="flip" width="500" height="500">
This text is displayed if your browser does not support HTML5 Canvas.</canvas> </body></html>
'<!doctype html />'は無効であり、多くのDOMの動作を変更するquirksモードを呼び出します。 '<!doctype html>'は正しいDTDです。 –