Я пытаюсь нарисовать прямоугольник на холсте щелчком мыши, движением мыши и другим щелчком. Как я должен следовать за курсором пользователя после первого щелчка и отображать предварительный просмотр заполненного прямоугольника на холсте того, как будет выглядеть форма в любой заданной координате.Как я могу показать, как будет выглядеть прямоугольник пользователя?
До сих пор я мог успешно создать прямоугольник, не показывая, как будет выглядеть прямоугольник в любой координате.
Вот код до сих пор:
var canvas = document.getElementById("canvas");
var ctx = canvas.getContext("2d");
var canvasOffset = $("#canvas").offset();
var offsetX = canvasOffset.left;
var offsetY = canvasOffset.top;
var startX;
var startY;
var drawingShape = false;
//function getMousePos(canvas, ev) {
//var rect = canvas.getBoundingClientRect();
//}
//canvas.addEventListener('mousemove', function (ev) {
//var mousePos = getMousePos(canvas, ev);
//}
function setMousePosition(e) {
mouseX = parseInt(e.clientX - offsetX);
mouseY = parseInt(e.clientY - offsetY);
$("#downlog").html("Down: " + mouseX + "/" + mouseY);
if (drawingShape) {
drawingShape = false;
ctx.beginPath();
ctx.fillStyle = "#FF0000";
ctx.rect(startX, startY, mouseX - startX, mouseY - startY);
ctx.fill();
} else {
drawingShape = true;
startX = mouseX;
startY = mouseY;
}
}
$("#canvas").mousedown(function (e) {
setMousePosition(e);
});
Я попытался использовать слушатель событий для движения мыши, как я видел в этом HTML5 учебник (http://www.html5canvastutorials.com/advanced/html5-canvas-mouse-coordinates/), но я не уверен, как соединить его с существующий код.
jsfiddle из кода, который вы указали (для людей, пытающихся помочь): http://jsfiddle.net/bnkT8/ – MiJyn