Суть проблемы: рисую линии на холсте, по клику мышки. Весь холст очищаю clearRect(). Если, после этого, нарисовать еще линию, то появляются все нарисованные ранее. Такое ощущение, что clearRect() просто закрашивает линии белым, а не удаляет их.
var context = canvas.getContext("2d");
var coords = [];//массив для хранения координат мыши первого клика
canvas.onclick = function(event){
var x = event.offsetX;
var y = event.offsetY;
if (coords.length == 0) {
coords.push(x);
coords.push(y);
console.log("Первый клик:", coords);
} else {
console.log("Второй клик:", coords);
context.moveTo(coords[0], coords[1]);
context.lineTo(x,y);
context.stroke();
}
}
var clear = document.getElementById("clear");
clear.onclick = function(){
var context = canvas.getContext("2d");
context.clearRect(0,0,250,380);
coords.splice(0,coords.length);
console.log("Очистка ",coords);
}
<canvas id="canvas" width="250" height="380"></canvas>
<button type="button" id="clear">Очистить</button>
Как очистить холст навсегда?
Потому что контур надо закрывать за собой: https://developer.mozilla.org/ru/docs/Web/API/CanvasRenderingContext2D/closePath
var context = canvas.getContext("2d");
var coords = [];//массив для хранения координат мыши первого клика
canvas.onclick = function(event){
var x = event.offsetX;
var y = event.offsetY;
if (coords.length == 0) {
coords.push(x);
coords.push(y);
//console.log("Первый клик:", coords);
} else {
//console.log("Второй клик:", coords);
context.beginPath();
context.moveTo(coords[0], coords[1]);
context.lineTo(x,y);
context.stroke();
context.closePath();
}
}
var clear = document.getElementById("clear");
clear.onclick = function(){
context.clearRect(0,0,250,380);
coords.splice(0,coords.length);
//console.log("Очистка ",coords);
}
<button type="button" id="clear">Очистить</button>
<canvas id="canvas" width="250" height="380"></canvas>
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости