Введение
В этом лабе участники научатся обрабатывать события клавиатуры на веб-странице, создав интерактивный HTML-интерфейс, который реагирует на нажатия клавиш пользователя. Лаборатория посвящена реализации обработчиков событий, таких как onkeydown и onkeyup, для динамического изменения цвета текста и демонстрации реального времени взаимодействия с клавиатурой. Участники начнут с настройки структурированного HTML-документа с элементом ввода и стилизацией, а затем постепенно добавят функциональность JavaScript для захвата и реакции на события клавиатуры.
Лаборатория предлагает практический подход к пониманию управления событиями клавиатуры, охватывая ключевые методы, такие как обнаружение нажатий клавиш, модификация элементов страницы и реализация слушателей событий. Следуя пошаговому процессу, ученики получат практический опыт в создании отзывчивых веб-интерфейсов, которые могут обнаруживать и реагировать на взаимодействие пользователя с клавиатурой, углубляя свое понимание обработки клиентских событий в веб-разработке.
Настройте HTML-структуру с элементом ввода
В этом шаге мы создадим базовую HTML-структуру для нашей лаборатории по обработке событий клавиатуры. Мы настроим HTML-файл с элементом ввода, который будет служить целевым объектом для наших событий клавиатуры.
Откройте WebIDE и создайте новый файл с именем index.html в каталоге ~/project. Мы начнем с создания простого HTML5-документа с базовой структурой и элементом ввода.
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<title>Keyboard Events Lab</title>
<style>
body {
font-family: Arial, sans-serif;
display: flex;
justify-content: center;
align-items: center;
height: 100vh;
margin: 0;
background-color: #f0f0f0;
}
.container {
text-align: center;
background-color: white;
padding: 20px;
border-radius: 8px;
box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
}
input {
padding: 10px;
font-size: 16px;
width: 300px;
margin-bottom: 10px;
}
#output {
margin-top: 10px;
font-weight: bold;
}
</style>
</head>
<body>
<div class="container">
<h1>Keyboard Events Lab</h1>
<input type="text" id="keyboardInput" placeholder="Type something here" />
<div id="output"></div>
</div>
</body>
</html>
Разберём основные компоненты этой HTML-структуры:
- Мы создали простой, центрированный макет с div-контейнером.
- Элемент
<input>с идентификаторомkeyboardInputдобавлен в качестве основной точки взаимодействия. - Включен div с идентификатором
outputдля отображения информации о событиях. - Добавлены базовые стили CSS для улучшения визуального вида и макета.
Это начальное настройка обеспечивает чистый, удобный для пользователя интерфейс для нашей демонстрации событий клавиатуры. В последующих шагах мы добавим JavaScript для обработки событий клавиатуры на этом элементе ввода.
Реализуйте событие onkeydown для изменения цвета текста
В этом шаге мы добавим JavaScript для реализации обработчика события onkeydown для нашего элемента ввода. Это событие изменит цвет текста при нажатии клавиши.
Откройте файл index.html в WebIDE и добавьте тег <script> сразу перед закрывающим тегом </body> для включения нашего JavaScript-кода:
<script>
// Get references to the input element and output div
const inputElement = document.getElementById("keyboardInput");
const outputElement = document.getElementById("output");
// Add onkeydown event listener to change text color
inputElement.onkeydown = function (event) {
// Change the input text color to red when a key is pressed
this.style.color = "red";
// Display information about the key pressed
outputElement.textContent = `Key pressed: ${event.key} (KeyCode: ${event.keyCode})`;
};
</script>
Разберём основные части этого кода:
document.getElementById()используется для получения ссылок на элементы ввода и вывода.inputElement.onkeydownдобавляет слушатель события для события нажатия клавиши.- Внутри обработчика события:
this.style.color ='red'изменяет цвет текста на красный при нажатии клавиши.outputElement.textContentотображает информацию о нажатой клавише.
Пример вывода при вводе в поле ввода:
- Текст станет красным при наборе
- Дивиз вывода покажет последнюю нажатую клавишу и её код
Это демонстрирует, как работает событие onkeydown:
- Триггерится каждый раз при нажатии клавиши
- Предоставляет доступ к деталям события, таким как нажатая клавиша
- Позволяет динамически манипулировать стилями элементов
Реализуйте событие onkeyup для восстановления исходного цвета текста
В этом шаге мы добавим обработчик события onkeyup, чтобы восстановить цвет вводимого текста в исходное состояние при отпускании клавиши. Мы модифицируем существующий скрипт в файле index.html, чтобы включить эту функциональность.
Обновите раздел <script> в файле index.html следующим кодом:
<script>
// Get references to the input element and output div
const inputElement = document.getElementById("keyboardInput");
const outputElement = document.getElementById("output");
// Add onkeydown event listener to change text color
inputElement.onkeydown = function (event) {
// Change the input text color to red when a key is pressed
this.style.color = "red";
// Display information about the key pressed
outputElement.textContent = `Key pressed: ${event.key} (KeyCode: ${event.keyCode})`;
};
// Add onkeyup event listener to restore original text color
inputElement.onkeyup = function (event) {
// Restore the input text color to black when the key is released
this.style.color = "black";
// Update the output with key release information
outputElement.textContent = `Key released: ${event.key} (KeyCode: ${event.keyCode})`;
};
</script>
Разберём новый обработчик события onkeyup:
inputElement.onkeyupдобавляет слушатель события для события отпускания клавиши.- Внутри обработчика события:
this.style.color = 'black'восстанавливает цвет текста в чёрный при отпускании клавиши.outputElement.textContentотображает информацию о отпущенной клавише.
Пример взаимодействия:
- Когда вы нажимаете клавишу, текст становится красным
- Когда вы отпускаете клавишу, текст возвращается в чёрный
- Дивиз вывода показывает детали как по событию нажатия, так и по событию отпускания клавиши
Это демонстрирует разницу между событиями onkeydown и onkeyup:
onkeydownсрабатывает при нажатии клавишиonkeyupсрабатывает при отпускании клавиши- Оба события предоставляют доступ к информации о клавише
Добавьте обработчик события window.onload
В этом шаге мы познакомимся с обработчиком события window.onload, чтобы показать, как выполнять JavaScript-код после полной загрузки веб-страницы. Мы добавим функцию инициализации, которая будет выводить начальное сообщение и настраивать некоторые стандартные стили.
Обновите раздел <script> в файле index.html следующим кодом:
<script>
// Window onload event handler
window.onload = function () {
// Get references to the input element and output div
const inputElement = document.getElementById("keyboardInput");
const outputElement = document.getElementById("output");
// Set initial message when page loads
outputElement.textContent = "Page loaded! Start typing in the input field.";
outputElement.style.color = "green";
// Add onkeydown event listener to change text color
inputElement.onkeydown = function (event) {
// Change the input text color to red when a key is pressed
this.style.color = "red";
// Display information about the key pressed
outputElement.textContent = `Key pressed: ${event.key} (KeyCode: ${event.keyCode})`;
outputElement.style.color = "blue";
};
// Add onkeyup event listener to restore original text color
inputElement.onkeyup = function (event) {
// Restore the input text color to black when the key is released
this.style.color = "black";
// Update the output with key release information
outputElement.textContent = `Key released: ${event.key} (KeyCode: ${event.keyCode})`;
outputElement.style.color = "green";
};
};
</script>
Основные изменения в этом шаге:
- Обернули существующие обработчики событий внутри функции
window.onload - Добавили начальное сообщение при загрузке страницы
- Ввели изменения цвета для элемента вывода для лучшего визуального обратного вызова
Событие window.onload гарантирует, что:
- Все элементы страницы полностью загружены перед запуском JavaScript
- Предотвращает ошибки, которые могут возникнуть, если скрипты запускаются до того, как DOM будет готовым
- Предоставляет надежный способ инициализации функциональности страницы
Пример взаимодействия:
- При загрузке страницы вы увидите зеленое сообщение "Page loaded!"
- Наберите текст, чтобы изменить цвета текста и выводить сообщения
- При нажатии клавиши показываются синие сообщения
- При отпускании клавиши показываются зеленые сообщения
Тестируйте и проверяйте взаимодействие с клавиатурой
В этом заключительном шаге мы проверим и подтвердим взаимодействие с клавиатурой, которое мы реализовали на протяжении всей лабораторной работы. Мы исследуем различные сценарии, чтобы показать, как наши обработчики событий работают, и понять их поведение.
Откройте файл index.html в WebIDE и убедитесь, что у вас есть полный скрипт из предыдущих шагов. Теперь давайте протестируем различные взаимодействия с клавиатурой:
Взаимодействие при загрузке страницы
- При загрузке страницы вы должны увидеть зеленое сообщение: "Page loaded! Start typing in the input field."
Взаимодействие при нажатии клавиши
- Нажмите любую клавишу в поле ввода
- Обратите внимание на следующие изменения:
- Цвет текста меняется на красный
- Сообщение вывода показывает нажатую клавишу и её код
- Цвет сообщения вывода меняется на синий
Взаимодействие при отпускании клавиши
- Отпустите нажатую клавишу
- Обратите внимание на следующие изменения:
- Цвет текста возвращается в чёрный
- Сообщение вывода показывает отпущенную клавишу и её код
- Цвет сообщения вывода возвращается в зелёный
Примеры сценариев взаимодействия:
Сценарий 1: Набираем "Hello"
- Первый 'H' нажат: Текст становится красным, синие сообщения вывода
- 'H' отпущен: Текст становится чёрным, зелёные сообщения вывода
- Продолжайте для каждой буквы...
Сценарий 2: Особые клавиши
- Попробуйте стрелки, shift, ctrl и т.д.
- Обратите внимание, как различные клавиши вызывают события
Основные моменты обучения:
onkeydown: Триггерится при нажатии клавишиonkeyup: Триггерится при отпускании клавишиwindow.onload: Гарантирует, что страница полностью загружена перед запуском скриптов
Для завершения лабораторной работы:
- Откройте HTML-файл в веб-браузере
- Взаимодействуйте с полем ввода
- Обратите внимание на изменения цвета и сообщений
- Подтвердите, что все обработчики событий работают как ожидается
Резюме
В этой лабораторной работе участники научатся обрабатывать события клавиатуры на веб-странице, создавая интерактивный HTML-интерфейс с использованием слушателей событий JavaScript. Работа начинается с настройки структурированного HTML-документа, содержащего элемент ввода и div для вывода, стилизованного с использованием адаптивного CSS, чтобы обеспечить чистый, центрированный пользовательский интерфейс. Участники изучат основные методы обработки событий, такие как onkeydown и onkeyup, которые позволяют динамически управлять цветом текста и осуществлять реального времени отслеживание событий.
Цели обучения сосредоточены на понимании механизмов событий браузера, реализации слушателей событий и создании отзывчивых веб-интеракций. Решив задачи лабораторной работы, разработчики получат практический опыт в захвате ввода с клавиатуры, динамическом изменении элементов страницы и реализации обработчиков событий на уровне окна, что являются фундаментальными навыками для создания интерактивных и привлекательных веб-приложений.



