Ich lerne gerade Jquery und HTML5 Canvas. Alles, was ich tun möchte, ist eine einfache html5 Zeichnung Beispiel. Wenn die Maus bewegen, zeichne ich rote Quadrate unter meiner Maus.
Mein Code ist einfach, aber ich habe ein Problem, die Position des Mauszeigers innerhalb der Leinwand zu erhalten.
Im Moment verwende ich x=event.offsetX; um die Mausposition zu erhalten. Dies funktioniert sehr gut in Chrome, aber wenn es zu Firefox kommt, funktioniert es nicht. Ich änderte den Code zu x=event.layerX. aber es scheint, dass layerX die Position meiner Maus relativ zur Webseite ist, nicht die Position der Leinwand. weil ich immer einen Versatz sehe.
Ich habe zwei Fragen, erstens, was ist das Richtige zu tun, um die richtige Mausposition unter Firefox zu erhalten. zweitens, wie kann ich einen Code schreiben, der für IE, Firefox, Chrome, Safari und Opera funktioniert?
Hier ist mein Code:
<!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>
4 Stimmen
<!doctype html />
ist ungültig und ruft den Quirks-Modus auf, der das Verhalten vieler DOM-Sachen ändert!<!doctype html>
ist die richtige DTD.