
Этот набор заданий посвящен работе с элементом `<canvas>` в HTML с использованием JavaScript. Вы научитесь получать контекст рисования, задавать цвета и стили, рисовать простые фигуры (прямоугольники, линии, круги), выводить текст и изображения на холст. Задания построены по принципу 'от простого к сложному' и помогут закрепить навыки работы с Canvas API. Вам будет предоставлен готовый HTML и частично написанный JavaScript код, который нужно будет дополнить.
- Модуль 1: Основы выбора элементов
- Выбор элемента по ID.
- Выбор элементов по классу.
- Выбор элементов по тегу.
- Выбор по селектору CSS.
- Выбор по атрибуту.
- Поиск элементов внутри другого элемента.
- Поиск родительского элемента.
- Поиск соседних элементов (предыдущий, следующий).
- Поиск первого и последнего дочернего элемента.
- Поиск всех дочерних элементов.
- Модуль 2: Манипуляция содержимым
- Модуль 3: Работа с атрибутами
- Модуль 4: Управление классами
- Модуль 5: Управление стилями
- Модуль 6: Создание и удаление элементов
- Создание нового элемента.
- Вставка элемента перед другим элементом.
- Вставка элемента после другого элемента.
- Добавление элемента в определенную позицию внутри списка дочерних элементов.
- Удаление элемента из DOM.
- Замена одного элемента другим.
- Перемещение существующего элемента в другое место DOM..
- Очистка содержимого элемента без его удаления.
- Модуль 7: Обработка событий
- Модуль 8: Работа с формами
- Модуль 9: Продвинутые манипуляции
- Модуль 10: Работа с размерами и прокруткой
- Получение размеров элемента.
- Получение позиции элемента относительно окна браузера.
- Получение позиции элемента относительно родительского элемента.
- Управление прокруткой страницы.
- Определение, виден ли элемент в текущей области просмотра.
- Плавная прокрутка к элементу.
- Создание элемента, который фиксируется при прокрутке.
- Модуль 11: Работа с медиа-элементами
- Создание простой галереи изображений.
- Работа с Canvas.
- Модуль 12: Практические задания
Получение контекста и заливка фона
Найдите элемент canvas на странице по его ID 'myCanvas'. Получите 2D контекст для рисования. Установите цвет заливки на 'lightblue' и залейте весь холст этим цветом, используя размеры холста.
canvas {
border: 1px solid black;
}
<canvas id="myCanvas" width="300" height="300"></canvas>
const canvas = document.input__1("myCanvas");
const ctx = canvas.input__2("2d");
ctx.input__3 = "lightblue";
ctx.input__4(0, 0, canvas.width, canvas.height);
Рисование прямоугольника
На холсте 'myCanvas' нарисуйте красный прямоугольник. Задайте цвет заливки 'red'. Прямоугольник должен начинаться в точке (50, 50) и иметь ширину 100 и высоту 80 пикселей.
canvas {
border: 1px solid black;
}
<canvas id="myCanvas" width="300" height="300"></canvas>
const canvas = document.getElementById("myCanvas");
const ctx = canvas.getContext("2d");
ctx.input__1 = "red";
ctx.input__2(50, 50, 100, 80);
Рисование контура прямоугольника
Нарисуйте контур (не залитый) зеленого прямоугольника на холсте 'myCanvas'. Установите цвет контура 'green' и толщину линии 3 пикселя. Прямоугольник должен начинаться в точке (20, 30), иметь ширину 150 и высоту 100.
canvas {
border: 1px solid black;
}
<canvas id="myCanvas" width="300" height="300"></canvas>
const canvas = document.getElementById("myCanvas");
const ctx = canvas.getContext("2d");
ctx.input__1 = "green";
ctx.input__2 = 3;
ctx.input__3(20, 30, 150, 100);
Рисование линии
Нарисуйте синюю диагональную линию на холсте 'myCanvas'. Линия должна начинаться в точке (50, 50) и заканчиваться в точке (250, 250). Установите цвет линии 'blue' и толщину 5 пикселей.
canvas {
border: 1px solid black;
}
<canvas id="myCanvas" width="300" height="300"></canvas>
const canvas = document.getElementById("myCanvas");
const ctx = canvas.getContext("2d");
ctx.input__1(); // Начать путь
ctx.strokeStyle = "blue";
ctx.lineWidth = 5;
ctx.input__2(50, 50); // Начальная точка
ctx.input__3(250, 250); // Конечная точка
ctx.input__4(); // Отобразить линию
Рисование окружности
Нарисуйте желтую залитую окружность на холсте 'myCanvas'. Центр окружности должен быть в точке (150, 150), радиус - 70 пикселей. Установите цвет заливки 'yellow'.
canvas {
border: 1px solid black;
}
<canvas id="myCanvas" width="300" height="300"></canvas>
const canvas = document.getElementById("myCanvas");
const ctx = canvas.getContext("2d");
ctx.input__1(); // Начать путь
ctx.fillStyle = "yellow";
ctx.input__2(150, 150, 70, 0, input__3 * 2); // Описать дугу/окружность
ctx.input__4(); // Залить путь
Вывод текста
Напишите текст 'Hello Canvas!' на холсте 'myCanvas'. Используйте шрифт '30px Arial', цвет текста 'purple'. Текст должен начинаться в точке (50, 100).
canvas {
border: 1px solid black;
}
<canvas id="myCanvas" width="300" height="300"></canvas>
const canvas = document.getElementById("myCanvas");
const ctx = canvas.getContext("2d");
ctx.input__1 = "30px Arial";
ctx.input__2 = "purple";
ctx.input__3("Hello Canvas!", 50, 100);
Рисование изображения
Загрузите изображение 'https://naytikurs.ru/img/7.png' и нарисуйте его на холсте 'myCanvas' в точке (10, 10).
canvas {
border: 1px solid black;
}
<canvas id="myCanvas" width="300" height="300"></canvas>
const canvas = document.getElementById("myCanvas");
const ctx = canvas.getContext("2d");
const img = new input__1();
img.src = "https://naytikurs.ru/img/7.png";
img.input__2 = function() {
ctx.input__3(img, 10, 10);
};
Использование линейного градиента
Нарисуйте прямоугольник на холсте 'myCanvas', залитый линейным градиентом. Градиент должен идти слева направо (от x=50 до x=250), начинаться с красного цвета ('red') и заканчиваться синим ('blue'). Прямоугольник должен занимать область от (50, 50) до (250, 200).
canvas {
border: 1px solid black;
}
<canvas id="myCanvas" width="300" height="300"></canvas>
const canvas = document.getElementById("myCanvas");
const ctx = canvas.getContext("2d");
// Создание градиента (от 50,0 до 250,0)
const gradient = ctx.input__1(50, 0, 250, 0);
// Добавление цветов
gradient.input__2(0, "red"); // Начальный цвет
gradient.input__2(1, "blue"); // Конечный цвет
// Применение градиента и рисование прямоугольника
ctx.input__3 = gradient;
ctx.fillRect(50, 50, 200, 150); // x, y, width, height