В этой публикации хочу рассмотреть создание одного элемента холста canvas при помощи JavaScript. Внутри этого элемента будут созданы два контекста визуализации с режимом «2d», которые будут представлять собой два квадрата.
Первый квадрат фиолетового цвета будет закрывать всё пространство холста. Второй квадрат жёлтого цвета будет меньше и он будет логически отцентрован относительно холста.
То есть маленький квадрат должен быть расположен над большим. Как это сделать?
Пример кода с комментариями
<!DOCTYPE html>
<html lang=«ru»>
<head>
<meta charset=«UTF-8»>
<meta http-equiv=«X-UA-Compatible» content=«IE=edge»>
<meta name=«viewport» content=«width=device-width, initial-scale=1.0»>
<title>Холст canvas с двумя контекстами визуализации</title>
</head>
<body>
<script>
// Создаём в документе новый элемент холста
let cs = document.createElement(‘canvas’);
// Присваиваем холсту значения ширины и высоты
cs.width = 600;
cs.height = 600;
// Создаём первый контекст визуализации в режиме ‘2d’
let ctx1 = cs.getContext(‘2d’);
// Указываем стиль заполнения контекста. Фиолетовый цвет.
ctx1.fillStyle = ‘#80475e’;
// Указываем прямоугольную область заполнения цвета
ctx1.fillRect(0,0,cs.width,cs.height);
// Создаём второй контекст визуализации в режиме ‘2d’
let ctx2 = cs.getContext(‘2d’);
// Указываем стиль заполнения контекста. Жёлтый цвет.
ctx2.fillStyle = ‘#f0f757’;
// Указываем прямоугольную область заполнения цвета
ctx2.fillRect(cs.width/4, cs.height/4, cs.width/2, cs.height/2);
// Помещаем элемент холста внутрь элемента body для отображения его на странице
document.body.append(cs);
</script>
</body>
</html>
Как выглядит холст на странице?
Информационные ссылки
JavaScript | Как создать холст canvas с красным квадратом 100 на 100 пикселей на странице?
Стандарт DOM — Раздел «createElement(localName [, options])» — https://dom.spec.whatwg.org/#ref-for-dom-document-createelement①
Стандарт DOM — Раздел «append(nodes)» — https://dom.spec.whatwg.org/#ref-for-dom-parentnode-append①
Стандарт HTML — Раздел «width and height» — https://html.spec.whatwg.org/multipage/canvas.html#the-canvas-element:the-canvas-element-19
Стандарт HTML — Раздел «canvas.getContext(contextId [, options ])» — https://html.spec.whatwg.org/multipage/canvas.html#dom-canvas-getcontext-dev
Стандарт HTML — Раздел «context.fillStyle [ = value ]» — https://html.spec.whatwg.org/multipage/canvas.html#dom-context-2d-fillstyle-dev
Стандарт HTML — Раздел «context.fillRect(x, y, w, h)» — https://html.spec.whatwg.org/multipage/canvas.html#dom-context-2d-fillrect-dev