Я создаю фон, который почему-то перекрывает позже созданный мною паттерн. Не могу понять, как сделать наоборот.
const canvasPatterns = document.getElementById('fon');
let ctx = canvasPatterns.getContext('2d');
const img = new Image();
img.src = 'https://upload.wikimedia.org/wikipedia/commons/thumb/7/7f/L_Old_London.svg/220px-L_Old_London.svg.png';
img.onload = function () {
ctx.fillStyle = ctx.createPattern(img, 'repeat');
ctx.fillRect(25, 25, ctx.canvas.width - 50, ctx.canvas.height - 50);
};
const patternLine = document.getElementById('block');
let patternCtx = patternLine.getContext('2d');
patternCtx.fillStyle = 'grey';
patternCtx.fillRect(0, 0, 25, 25);
patternLine.style.display = 'none';
ctx.strokeStyle = ctx.createPattern(patternLine, 'repeat');
ctx.lineWidth = 50;
ctx.strokeRect(0, 0, canvasPatterns.width, canvasPatterns.height);
ctx.fillStyle = ctx.createPattern(patternLine, 'repeat');
ctx.lineWidth = 50;
ctx.strokeRect(25, 25, 100, 25);
<canvas id="fon" width="600" height="300"></canvas>
<canvas id="block" width="25" height="25"></canvas>
img.onload = function ()
Выполнится только после того, как загрузится картинка, таким образом Вы сначала рисуете серый фон а затем уже то, что в Файле, решить проблему можно если рисовть абсолютно все после загрузки файла:
const canvasPatterns = document.getElementById('fon');
let ctx = canvasPatterns.getContext('2d');
const img = new Image();
img.src = 'https://upload.wikimedia.org/wikipedia/commons/thumb/7/7f/L_Old_London.svg/220px-L_Old_London.svg.png';
img.onload = function () {
ctx.fillStyle = ctx.createPattern(img, 'repeat');
ctx.fillRect(25, 25, ctx.canvas.width - 50, ctx.canvas.height - 50);
const patternLine = document.getElementById('block');
let patternCtx = patternLine.getContext('2d');
patternCtx.fillStyle = 'grey';
patternCtx.fillRect(0, 0, 25, 25);
patternLine.style.display = 'none';
ctx.strokeStyle = ctx.createPattern(patternLine, 'repeat');
ctx.lineWidth = 50;
ctx.strokeRect(0, 0, canvasPatterns.width, canvasPatterns.height);
ctx.fillStyle = ctx.createPattern(patternLine, 'repeat');
ctx.lineWidth = 50;
ctx.strokeRect(25, 25, 100, 25);
};
<canvas id="fon" width="600" height="300"></canvas>
<canvas id="block" width="25" height="25"></canvas>
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Вот часть формыНужно сохранять выбранные значения в localStorage
Нужно получить из урл значение get параметра "data", каким образом это можно реализовать?
Не могу разобраться с фильтрацией в angularА именно: Есть 2 контроллера, один отвечает за пользователей, другой за их местоположение
Всем приветРаботаю с google api, а конкретно с календарем