- PVSM.RU - https://www.pvsm.ru -

Keypress 2.0.0

Семнадцать дней назад (19 января 2014 года) вышла новая версия (2.0.0) джаваскриптовой библиотеки Keypress [1], предназначенной для удобного программирования реакций браузера на события, поступающие от нажатий (и от отпусканий) клавиш на клавиатуре.

Опубликованный на Гитхабе [2] список изменений позволяет уверенно огласить вот что: важнейшим из достоинств новой версии стала возможность ловить события не только во всём окне в целом, но и для одного или нескольких отдельных элементов DOM. Теперь и при программировании различающихся реакций у различных элементов на веб-страницах мы можем с удобством прибегнуть к библиотеке Keypress вместо тех её более ранних и более популярных аналогов (например, jQuery.Hotkeys [3]), которые уступают Keypress по богатству возможностей.

[Keypress]

Возможности же эти вот каковы:

  • Реакция на нажатие и отпускание одной или нескольких клавиш. Поддерживаются синонимы кросс-платформенные (например, "meta" означает "cmd" или "ctrl" в зависимости от системы) и шифтовые (например, "@" означает сочетание Shift и двойки).
     
  • Keypress 2.0.0Программируемые сочетания клавиш могут включать в себя не только классические модификаторы ("meta", "alt", "option", "ctrl", "shift", "cmd"), но и какие угодно другие клавиши. Например, программируя WASD [4]-управление пошаговою бродилкою, нетрудно достигнуть того, чтобы нажатие и отпускание клавиши «W» означало шаг вперёд, но «W» и «D» совместно — шаг по диагонали вперёд+направо.
     
  • Возможно указание сочетаний клавиш, состоящих не из одновременных, а из последовательных нажатий клавиш. Это такие сочетания, как код Конами [5], например.
     
  • Специальные «считающие» комбинации позволяют программировать такие ситуации, в которых нажатие основной клавиши обнуляет некоторый счётчик, а каждое нажатие дополнительной клавиши (при удержании основной) увеличивает этот счётчик на единицу. David Mauro (автор Keypress) приводит в пример такое сочетание Tab+Space, при котором нажатие Tab тотчас же открывает первую вкладку в некотором наборе вкладок, а каждое нажатие на пробел (при удержании Tab) перебрасывает на следующую вкладку — на вторую, на третью, на четвёртую…

У каждой одиночной клавиши (или у комбинации) возможны дополнительные настройки. При помощи их можно предотвращать реакцию на системный автоповтор нажатий клавиши, удерживаемой в нажатом состоянии. Можно прибавить к обработке ещё и перехват события (то есть вызов метода event.preventDefault). Можно управлять специфичностью событий (предотвращать срабатывание "s" при нажатии "shift s", например). Можно отключать требование строгого порядка клавиш (например, обеспечить срабатывание "shift s" даже в тех случаях, когда сперва нажали клавишу «S», и лишь после неё — «Shift»). Можно предотвращать срабатывание клавиши (или комбинации клавиш) в том случае, когда одновременно с этими клавишами были нажаты какие-либо другие (посторонние) клавиши (одна или несколько).

Сознавая пользу такой гибкости определений и настроек, я намерен в дальнейшем библиотекою Keypress воспользоваться, и вам желаю того же.

Автор: Mithgol

Источник [6]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/javascript/54289

Ссылки в тексте:

[1] Keypress: http://dmauro.github.io/Keypress/

[2] на Гитхабе: https://github.com/dmauro/Keypress

[3] jQuery.Hotkeys: https://github.com/jeresig/jquery.hotkeys/

[4] WASD: http://en.wikipedia.org/wiki/Arrow_keys#WASD_keys

[5] код Конами: http://en.wikipedia.org/wiki/Konami_Code

[6] Источник: http://habrahabr.ru/post/211456/