Я хочу нарисовать многострочный (я имею в виду несколько последовательных строк, которые разделяют одну координату с предыдущей и одну со следующей строкой) на щелчки мыши. Я в настоящее время достигается это через mousemove
событие в JQuery:Нарисуйте многострочный холст HTML5 с помощью JQuery
var worksheetCanvas = $('#worksheet-canvas');
var context = worksheetCanvas.get(0).getContext("2d");
var mouse = {
x: -1,
y: -1
}
var parentOffset = $('#canvas-holder').parent().offset();
worksheetCanvas.click(function(e) {
mouse.x = e.pageX - parentOffset.left;
mouse.y = e.pageY - parentOffset.top;
context.beginPath();
context.moveTo(mouse.x, mouse.y);
$(this).mousemove(function(k) {
context.strokeStyle = "rgb(180,800,95)";
context.lineTo(k.pageX - parentOffset.left, k.pageY - parentOffset.top);
context.closePath();
context.stroke();
})
})
Но как я могу показать вам в this example, когда я двигаю курсор мыши, он оставляет след линий, которые каким-то образом мне нужно удалить, чтобы создать впечатление одной единственной подвижной линии, которая нуждается в определении другой точки. Я попытался очистить ненужные строки, но в контексте 2d есть только метод clearRect()
, тогда как я ищу что-то вроде clearPath()
.
Я думаю, что вы имеете в виду 'мульти> MaxLines + 1' и' мульти - ', потому что первый щелчок не производит линию еще. http://jsfiddle.net/z6uFz/5/ – pimvdb
Было что-то не так с этим счетом, верно. Я подумал, что теперь это действительно не нужно, array.length можно использовать прямо там - обновить ответ. –
Почему вы ограничили количество строк, которые попадают в массив с помощью 'var maxLines = 5'? Он потребляет много ресурсов, если я его не ограничиваю? – menislici