1
我试图做一个'绘制'应用程序,它允许用户通过拖动鼠标在画布上绘制某些东西。JQuery/Javascript - 鼠标位置完全关闭
但是,我想在用户拖动鼠标的地方绘制一个“像素”,但是:鼠标的位置和“像素”绘制的位置不一样。 我在互联网上搜索过,但我不知道与我的版本和他们的版本有什么不同。
HTML
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Drawer</title>
<script src="jquery-2.2.1.min.js"></script>
<script src="scripting/draw.js"></script>
</head>
<body>
<canvas id="drawGround" style="width: 500px; height: 500px; margin: 0 auto; border: 1px solid black;"></canvas>
</body>
</html>
代码:
$(document).ready(function() {
var drawSize = 3;
var canDrawCanvas = false;
const canvasID = "#drawGround";
document.onmouseup = function() {
canDrawCanvas = false;
};
$(canvasID).mousedown(function() {
canDrawCanvas = true;
});
$(canvasID).mousemove(function(event) {
if (canDrawCanvas) handleDrawing(event);
});
function handleDrawing(mouseEvent) {
var canvas = document.getElementById(canvasID.substring(1));
var context = canvas.getContext('2d');
context.fillRect(mouseEvent.pageX, mouseEvent.pageY, drawSize, drawSize);
}
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<canvas id="drawGround" style="width: 500px; height: 500px; margin: 0 auto; border: 1px solid black;"></canvas>
pageX属性和pageY给你的鼠标指针的位置在整个页面,而不是在所以你的画布试图找到/计算指针的相对位置,而不是绝对的。 – mitkosoft
使用'offsetX'和'offsetY'而不是'pageX'和'pageY' –