Я изучаю jquery и html5 холст. Все, что я хочу сделать, это простой пример рисунка html5. Когда мышь перемещается, я рисую красные квадраты под мышкой.Получение позиции мыши с javascript внутри canvas
Мой код прост, но у меня проблема с положением курсора мыши на холсте.
Прямо сейчас, я использую x = event.offsetX; чтобы получить положение мыши. Это очень хорошо работает в Chrome, но когда дело доходит до firefox, это не работает. Я изменил код на x = event.layerX. но кажется, что layerX - это положение моей мыши относительно веб-страницы, а не положение холста. потому что я всегда вижу смещение.
У меня есть два вопроса: во-первых, что нужно сделать, чтобы получить правильную позицию мыши под 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>
'' недействителен и вызывает режим quirks, который изменяет поведение множества вещей DOM! '' является правильным DTD. –