Pull to refresh

Keypress 2.0.0

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

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

[Keypress]

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

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

Для каждой одиночной клавиши (или для комбинации) возможны дополнительные настройки. Эти настройки позволяют при необходимости сделать вот что:

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

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

Articles