
В этом тренажере вы попрактикуетесь в обработке событий клавиатуры с помощью JavaScript. Вам будут представлены различные HTML-структуры и JavaScript-код с пропусками. Ваша задача - заполнить пропуски, чтобы код работал корректно и выполнял поставленную задачу. Каждое задание направлено на отработку определенного аспекта взаимодействия с клавиатурой: отслеживание нажатия клавиш, определение кодов клавиш, предотвращение стандартного поведения браузера и многое другое. Внимательно читайте условия и используйте свои знания JavaScript для решения задач. Если возникнут трудности, вы можете воспользоваться подсказками.
- Модуль 1: Основы выбора элементов
- Выбор элемента по ID.
- Выбор элементов по классу.
- Выбор элементов по тегу.
- Выбор по селектору CSS.
- Выбор по атрибуту.
- Поиск элементов внутри другого элемента.
- Поиск родительского элемента.
- Поиск соседних элементов (предыдущий, следующий).
- Поиск первого и последнего дочернего элемента.
- Поиск всех дочерних элементов.
- Модуль 2: Манипуляция содержимым
- Модуль 3: Работа с атрибутами
- Модуль 4: Управление классами
- Модуль 5: Управление стилями
- Модуль 6: Создание и удаление элементов
- Создание нового элемента.
- Вставка элемента перед другим элементом.
- Вставка элемента после другого элемента.
- Добавление элемента в определенную позицию внутри списка дочерних элементов.
- Удаление элемента из DOM.
- Замена одного элемента другим.
- Перемещение существующего элемента в другое место DOM..
- Очистка содержимого элемента без его удаления.
- Модуль 7: Обработка событий
- Модуль 8: Работа с формами
- Модуль 9: Продвинутые манипуляции
- Модуль 10: Работа с размерами и прокруткой
- Получение размеров элемента.
- Получение позиции элемента относительно окна браузера.
- Получение позиции элемента относительно родительского элемента.
- Управление прокруткой страницы.
- Определение, виден ли элемент в текущей области просмотра.
- Плавная прокрутка к элементу.
- Создание элемента, который фиксируется при прокрутке.
- Модуль 11: Работа с медиа-элементами
- Модуль 12: Практические задания
Отслеживание нажатия клавиши Enter
В текстовое поле вводится текст. Необходимо отследить нажатие клавиши Enter (код клавиши 13) и вывести введенный текст в абзац под текстовым полем. Убедитесь, что стандартное поведение (перенос строки) предотвращено.
<input type="text" id="myInput">
<p id="output"></p>
document.getElementById("myInput").addEventListener("input__1", function(event) {
if (event.input__2 === input__3) {
document.getElementById("output").textContent = input__4.target.value;
event.input__5();
}
});
Изменение цвета фона по нажатию клавиши
При нажатии клавиши "b" (английская раскладка) цвет фона элемента `div` с id "colorDiv" должен меняться на синий, а при нажатии клавиши "r" - на красный. Используйте `event.key` для определения нажатой клавиши.
#colorDiv {
width: 100px;
height: 100px;
border: 1px solid black;
}
<div id="colorDiv"></div>
document.addEventListener("input__1", function(event) {
if (event.input__2 === "b") {
document.getElementById("colorDiv").input__3.backgroundColor = "blue";
} else if (event.key === "input__4") {
document.getElementById("colorDiv").style.backgroundColor = "input__5";
}
console.log(event.key)
});
Перемещение элемента стрелками
Используя клавиши-стрелки (влево, вправо, вверх, вниз), перемещайте квадрат (элемент `div` с id "moveDiv") по странице. Каждое нажатие стрелки должно сдвигать квадрат на 10 пикселей в соответствующем направлении. Используйте `event.key` для определения нажатой клавиши.
#moveDiv {
width: 50px;
height: 50px;
background-color: green;
position: relative;
left: 0;
top: 0;
}
<div id="moveDiv"></div>
let div = document.getElementById("moveDiv");
let left = 0;
let topPos = 0;
document.addEventListener("input__1", function(event) {
switch (event.input__2) {
case "ArrowLeft":
left input__3= 10;
break;
case "ArrowRight":
left += 10;
break;
case "ArrowUp":
topPos -= 10;
break;
case "input__4":
topPos += 10;
break;
}
div.style.left = left + "px";
div.style.input__5 = topPos + "px";
});
Запрет ввода цифр в текстовое поле
Запретите ввод цифр (0-9) в текстовое поле (элемент `input` с id "noDigitsInput"). Любые другие символы должны вводиться без ограничений.
<input type="text" id="noDigitsInput">
document.getElementById("noDigitsInput").addEventListener("input__1", function(event) {
if (event.key >= "input__2" && event.key <= "input__3") {
event.input__4();
}
console.log(event.key)
});
Смена изображения по нажатию клавиши
При нажатии клавиши "1" отображается первое изображение, при нажатии клавиши "2" - второе, при нажатии клавиши "3" - третье. Используйте элемент `img` с id "imageChanger".
<img id="imageChanger" src="https://naytikurs.ru/assets/uploads/2025/03/3d-modelirovanie-i-vizualizatsiya-test-dlya-spetsialistov-v-trehmernoj-grafike2-300x300.png" width="150" height="150">
document.addEventListener("input__1", function(event) {
let img = document.getElementById("imageChanger");
switch (event.input__2) {
case "1":
img.src = "https://naytikurs.ru/assets/uploads/2025/03/3d-modelirovanie-i-vizualizatsiya-test-dlya-spetsialistov-v-trehmernoj-grafike2-300x300.png";
break;
case "input__3":
img.src = "https://naytikurs.ru/assets/uploads/2025/03/3d-modelirovanie-i-vizualizatsiya-test-dlya-spetsialistov-v-trehmernoj-grafike3-300x300.png";
break;
case "3":
img.input__4 = "https://naytikurs.ru/assets/uploads/2025/03/3d-modelirovanie-i-vizualizatsiya-test-dlya-spetsialistov-v-trehmernoj-grafike4-300x300.png";
break;
}
});
Увеличение/уменьшение размера текста по нажатию клавиш
При нажатии клавиши "+" (плюс) размер шрифта абзаца (элемент `p` с id "resizableText") должен увеличиваться на 2 пикселя, а при нажатии клавиши "-" (минус) - уменьшаться на 2 пикселя. Учтите, что клавиша "+" может находиться на одной клавише с другим символом, поэтому используйте `event.key`.
<p id="resizableText">Изменяемый текст</p>
document.addEventListener("input__1", function(event) {
let p = document.getElementById("resizableText");
let currentSize = parseInt(window.getComputedStyle(p).input__2);
if (event.key === "+") {
p.style.fontSize = (currentSize + 2) + "input__3";
} else if (event.key === "-") {
p.style.fontSize = (input__4 - 2) + "px";
}
console.log(event.key)
});
Показ/скрытие элемента по нажатию клавиши
При нажатии клавиши "h" (английская раскладка) элемент `div` с id "toggleDiv" должен скрываться, если он видим, и показываться, если он скрыт. Изначально элемент видим.
#toggleDiv {
width: 100px;
height: 100px;
background-color: orange;
}
<div id="toggleDiv"></div>
document.addEventListener("input__1", function(event) {
if (event.input__2 === "h") {
let div = document.getElementById("toggleDiv");
if (div.style.display input__3 "none") {
div.style.display = "none";
} else {
div.style.display = "input__4";
}
}
});
Ввод только заглавных букв
Сделайте так, чтобы в текстовое поле (элемент `input` с id "uppercaseInput") можно было вводить только заглавные буквы. При вводе строчной буквы она должна автоматически преобразовываться в заглавную.
<input type="text" id="uppercaseInput">
document.getElementById("uppercaseInput").addEventListener("input__1", function(event) {
event.target.value = event.target.value.input__2();
});