У меня есть функция, которая рисует линию CANVAS и заставляет ее получить те же координаты <div>
, используя offsetLeft. Строка ищет ту же позицию, что и <div>
, что делает ее приклеенной к <div>
. Она работает хорошо, НО ТОЛЬКО при загрузке страницы и обновлении браузера.
drawCanvas() {
const c = document.getElementById("canvas");
const lineH = c.getContext("2d");
c.width = window.innerWidth;
c.height = window.innerHeight;
const lineV = c.getContext("2d");
const positionCanvas = () => {
lineV.clearRect(0, 0, c.width, c.height);
const divPosition = document.querySelector('.myDiv').offsetLeft
lineV.fillStyle = "grey";
lineV.fillRect(divPosition , 0, 2, window.innerHeight);
lineV.fill();
}
positionCanvas()
window.onresize = () => {
lineV.height = window.innerHeight;
positionCanvas()
}
Я бы хотел, чтобы это работало хорошо каждый раз, особенно когда я занимаюсь изменением размеров окна. Как я могу решить это?
Пример:
Страница загружена:
ХОРОШО!!! Линия холста наклеена на <div>
Пока пользователь вручную изменяет размер браузера окна:
НЕ РАБОТАЕТ!!! Холст ищите <div>
но не приклеивайте его,
между ними есть расстояние.
После остановки изменения размера браузера:
НЕ РАБОТАЕТ!!! линия все еще отделена от <div>
Обновите браузер на новую позицию:
ХОРОШО!!! линия холста наклеена на <div>