Estoy estudiando el lienzo jquery y html5. Todo lo que quiero hacer es un simple ejemplo de dibujo html5. Cuando el mouse se mueve, dibujo cuadrados rojos debajo de mi mouse.obteniendo la posición del mouse con javascript dentro del lienzo
Mi código es simple, pero tengo un problema para obtener la posición del cursor del mouse dentro del lienzo.
En este momento, estoy usando x = event.offsetX; para obtener la posición del mouse Esto funciona muy bien en Chrome, sin embargo, cuando se trata de Firefox, no funciona. Cambié el código a x = event.layerX. pero parece que layerX es la posición de mi mouse en relación con la página web, no la posición del lienzo. porque siempre veo una compensación.
Tengo dos preguntas, primero, ¿qué es lo que hay que hacer para obtener la posición correcta del mouse en Firefox? segundo, ¿cómo puedo escribir un código que funcione para, por ejemplo, firefox, cromo, safari y ópera?
aquí es mi código:
<!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>
'' no es válido e invoca el modo peculiar, que cambia el comportamiento de muchas cosas DOM. '' es la DTD correcta. –