Навигация с помощью клавиатуры
Scheduler и его элементы могут быть доступны с помощью отдельных клавиш или их комбинаций. В этой статье описано всё, что нужно знать о навигации с клавиатуры в Scheduler: как работает фокус, встроенные сочета ния клавиш и как создавать собственные.
Включение функциональности
Чтобы включить навигацию с клавиатуры в Scheduler, просто активируйте расширение key_nav на вашей странице.
scheduler.plugins({
key_nav: true
});
Поведение фокуса при навигации с клавиатуры
Фокус на Scheduler
Нажатие клавиши Tab устанавливает фокус на Scheduler, как и на любой другой элемент. После получения фокуса можно перемещаться внутри Scheduler с помощью стрелок и других сочетаний клавиш.
Повторное нажатие Tab переводит фокус с Scheduler на другой элемент страницы.
Фокус на модальном окне
Когда открывается модальное окно (например, lightbox или окно подтверждения), фокус переключается с Scheduler на это окно, что позволяет перемещаться внутри него т ак же, как в обычной форме. После закрытия окна фокус возвращается к Scheduler.
Чтобы программно вернуть фокус к Scheduler, используйте метод focus:
scheduler.focus();
Когда Scheduler снова получает фокус, он устанавливает его на активный элемент внутри себя, первую строку или последний выбранный элемент.
Стандартные действия навигации внутри модального окна:
- Enter - подтвердить и закрыть
- Escape - закрыть без сохранения изменений
Если фокус находится на кнопке формы, нажатие Space или Enter активирует действие этой кнопки вместо стандартного поведения.
Стилизация ячеек в фокусе
Ячейки, находящиеся в фокусе, по умолчанию подсвечиваются серым/жёлтым фоном. Чтобы изменить этот стиль, модифицируйте CSS-класс .dhx_focus_slot:
<style>
.dhx_focus_slot{
background-color: #fff;
}
</style>
Области действия
Действия с клавиатурой зависят от контекста, то есть разные сочетания клавиш могут быть назначены различным элементам (областям) внутри Scheduler. Доступные области:
- "scheduler" - Весь Scheduler
- "timeSlot" - Временной слот
- "event" - Событие
- "minicalDate" - Дата в мини-календаре
- "minicalButton" - Кнопка-стрелка в мини-календаре
Если одно и то же сочетание клавиш назначено нескольким областям, приоритет будет у того, что привязано к более специфичному элементу. Например, сочетание на событии перекроет такое же сочетание для всего Scheduler.