JavaScript виконання коду JavaScript підключення зовнішнього файлу JavaScript console.log JavaScript змінні і константи JavaScript типи даних JavaScript операції зі змінними JavaScript перетворення даних JavaScript масиви JavaScript умовні конструкції JavaScript цикли JavaScript функції JavaScript область видимості змінних JavaScript замикання і функції IIFE JavaScript Паттерн Модуль JavaScript рекурсивні функції JavaScript перевизначення функцій JavaScript hoisting JavaScript передача параметрів за значенням і за посиланням JavaScript стрілочні функції JavaScript ООП Object JavaScript ООП вкладені об'єкти і масиви в об'єктах JavaScript ООП перевірка наявності і перебір методів і властивостей JavaScript ООП об'єкти у функціях JavaScript ООП конструктори об'єктів JavaScript ООП розширення об'єктів. prototype JavaScript ООП інкапсуляція JavaScript ООП Функція як об'єкт. Методи call і apply JavaScript ООП спадкування JavaScript ООП Ключове слово this JavaScript ООП Object destructuring JavaScript ООП класи JavaScript ООП Date. Робота з датами JavaScript Об'єкт Math. математичні операції JavaScript Об'єкт Array. Робота з масивами JavaScript ООП об'єкт Number JavaScript String JavaScript String Об'єкт RegExp. Регулярні вирази JavaScript String Регулярні вирази в методах String JavaScript String Синтаксис регулярних виразів JavaScript Робота з браузером і BOM JavaScript діалогові вікна JavaScript Історія браузера. об'єкт history JavaScript об'єкт location JavaScript об'єкт navigator JavaScript таймери JavaScript DOM Введення JavaScript DOM Об'єкт document. Пошук елементів JavaScript DOM Властивості об'єкта document JavaScript DOM Об'єкт Node. Навігація по DOM JavaScript DOM Створення, додавання і видалення елементів веб-сторінки JavaScript DOM Об'єкт Element. управління елементами JavaScript DOM Зміна стилю елементів JavaScript події. Введення в обробку подій. JavaScript події обробники JavaScript події. об'єкт Event JavaScript події. поширення подій JavaScript події миші JavaScript події клавіатури JavaScript FORMS. Форми і їх елементи JavaScript FORMS. Кнопки JavaScript FORMS. текстові поля JavaScript FORMS. Прапорці та перемикачі JavaScript FORMS. Список select JavaScript JSON JavaScript зберігання даних. cookie JavaScript зберігання даних. Web Storage JavaScript Collection. Ітератори JavaScript Collection. Генератори JavaScript Collection. Множина Set JavaScript Collection. Map JavaScript Collection. WeakSet і WeakMap JavaScript AJAX. XMLHttpRequest JavaScript AJAX. Відправка даних JavaScript AJAX. Promise в Ajax-запитах

JavaScript події клавіатури


Іншим поширеним типом подій є події клавіатури.

  • keydown : Виникає при натисканні клавіші клавіатури і триває, поки натиснута кнопка

  • keyup : Виникає при відпусканні клавіші клавіатури

  • keypress : Виникає при натисканні клавіші клавіатури, але після події keydown і до події keyup. Треба враховувати, що дана подія генерується тільки для тих клавіш, які формують результат у вигляді символів, наприклад, при друці символів. Натискання на інші клавіші, наприклад, на Alt, не враховуються.

Для роботи з подіями клавіатури визначено об'єкт KeyboardEvent , який додає до властивостей об'єкта Event ряд специфічних для клавіатури властивостей:

  • altKey : повертає true , якщо була натиснута клавіша Alt під час генерації події

  • charCode : повертає символ Unicode для натиснутої клавіші (використовується для події keypress)

  • keyCode : повертає числове уявлення натиснутої клавіші клавіатури

  • ctrlKey : повертає true , якщо була натиснута клавіша Ctrl під час генерації події

  • metaKey : повертає true , якщо була натиснута під час генерації події метаклавіша клавіатури

  • shiftKey : повертає true , якщо була натиснута клавіша Shift під час генерації події

Наприклад, ми можемо за допомогою клавіш клавіатури переміщати елемент на веб-сторінці:

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
    <style>
    html, body{
        margin:0;
        overflow:hidden;
    }
    #blueRect{
        width:100px;
        height:100px;
        background-color:blue;
    }
    </style>
</head>
<body>
<div id="blueRect"></div>
 
<script>

function moveRect(e){
     
    var blueRect = document.getElementById("blueRect");

    // отримуємо стиль для blueRect
    var cs = window.getComputedStyle(blueRect);
     
    var left = parseInt(cs.marginLeft);
    var top = parseInt(cs.marginTop);
     
    switch(e.keyCode){
         
        case 37:  // якщо нажата клавіша вліво
            if(left>0)
                blueRect.style.marginLeft = left - 10 + "px";
            break;

        case 38:   // якщо нажата клавіша вверх
            if(top>0)
                blueRect.style.marginTop = top - 10 + "px";
            break;

        case 39:   // якщо нажата клавіша вправо
            if(left < document.documentElement.clientWidth - 100)
                blueRect.style.marginLeft = left + 10 + "px";
            break;

        case 40:   // якщо нажата клавіша вниз
            if(top < document.documentElement.clientHeight - 100)
                blueRect.style.marginTop = top + 10 + "px";
            break;
    }
}
 
addEventListener("keydown", moveRect);

</script>
</body>
</html>

В даному випадку обробляється подія keydown . У обробнику moveRect за допомогою методу window.getComputedStyle() отримуємо стиль елемента blueRect . А потім з цього стилю вибираємо значення властивостей marginLeft і marginTop .

За допомогою властивості e.keyCode отримуємо натиснуту клавішу. Список кодів клавіш клавіатури можна подивитися на сайті http://www.javascriptkeycode.com/ .

Тут нас цікавлять чотири клавіші: вгору, вниз, вліво, вправо. Якщо одна з них натиснута, виробляємо дії: збільшення або зменшення відступу елемента від верхньої або лівої межі. Ну і щоб елемент не виходив за межі вікна, перевіряємо граничні значення за допомогою document.documentElement.clientWidth (ширина кореневого елемента) і document.documentElement.clientHeight (висота кореневого елемента).


Наш партнер:
beta test mp3 playlist downloader