我正在學習jquery和html5畫布。我想要做的只是一個簡單的html5繪圖示例。當鼠標移動時,我在我的鼠標下繪製紅色方塊。使用javascript在畫布內獲取鼠標位置
我的代碼很簡單,但在畫布內獲取鼠標光標位置時遇到問題。
現在,我正在使用x = event.offsetX;獲取鼠標位置。這在Chrome中運行得非常好,但是當涉及到Firefox時,它不起作用。我將代碼更改爲x = event.layerX。但似乎layerX是我的鼠標相對於網頁的位置,而不是畫布的位置。因爲我總是看到一個偏移量。
我有兩個問題,第一,如何在Firefox下獲得正確的鼠標位置是正確的。第二,我如何編寫適用於ie,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事物的行爲! `<!doctype html>`是正確的DTD。 – 2011-04-22 12:19:43