Gantt и его элементы могут быть доступны с помощью клавиш или их комбинаций. В этой статье описаны основы навигации с клавиатуры в Gantt, включая поведение фокуса, использование встроенных горячих клавиш и создание собственных сочетаний.
Чтобы включить навигацию с клавиатуры в Gantt, активируйте плагин keyboard_navigation с помощью метода gantt.plugins.
gantt.plugins({
keyboard_navigation: true
});
Подробности об API gantt.ext.keyboardNavigation можно найти в статье Расширение Keyboard Navigation.
Доступны два типа навигации с клавиатуры:
Активируйте, установив свойство keyboard_navigation в true.
Включите, установив свойство keyboard_navigation_cells в true.
Нажатие клавиши Tab устанавливает фокус на Gantt, как и на любой стандартный элемент. После получения фокуса можно использовать стрелки и другие клавиши для перемещения внутри Gantt.
Повторное нажатие Tab перемещает фокус с Gantt на другую часть страницы.
Когда открывается модальное окно (например, лайтбокс или окно подтверждения), фокус переключается с Gantt на модальное окно, и навигация осуществляется внутри него как в обычной форме. После закрытия окна фокус возвращается в Gantt.
Чтобы вернуть фокус в Gantt, используйте метод focus. Когда Gantt получает фокус, он устанавливается либо на активный элемент внутри, либо на первую строку, либо на последний выбранный элемент.
Стандартные действия навигации в модальном окне:
Если фокус находится на кнопке формы, нажатие Space или Enter активирует эту кнопку, а не действие модального окна.
Если фокус установлен на ячейке или строке грида, и пользователь кликает по пользовательскому HTML-элементу внутри Gantt, фокус вернётся на ячейку или строку грида.
Начиная с v7.1.13, добавление класса 'no_keyboard_navigation' к пользовательскому элементу предотвращает возврат фокуса к ячейке или строке грида.
Действие, вызываемое нажатием клавиши, зависит от контекста (scope). Различные сочетания клавиш могут быть назначены разным элементам (областям) внутри Gantt:
Если одно и то же сочетание клавиш назначено нескольким областям, приоритет имеет более специфичная область. Например, если сочетание назначено и Gantt, и элементу, будет срабатывать сочетание для элемента.
Чтобы добавить новое сочетание клавиш, используйте метод addShortcut с тремя параметрами:
gantt.addShortcut("shift+w", function(e){
var task = gantt.locate(e);
if(task)
gantt.showQuickInfo(task)
},"taskRow");
Чтобы удалить сочетание клавиш из области, используйте метод removeShortcut с двумя параметрами:
gantt.removeShortcut("shift+w","taskRow");
Можно получить функцию-обработчик сочетания с помощью метода getShortcutHandler, который принимает:
var shortcut_handler = gantt.getShortcutHandler("shift+w","taskRow");
Этот метод возвращает функцию-обработчик для сочетания.
Сочетания клавиш могут включать:
Несколько сочетаний для одного действия можно перечислить через запятую, например: "ctrl+a, ctrl+space".
Для навигации по Gantt доступны несколько встроенных сочетаний:
Related sample: Keyboard Navigation
Пример реализации копирования/вставки задач с помощью сочетаний Ctrl+C/Ctrl+V доступен в связанной статье.
Related sample: Keyboard Navigation - navigate cells
Начиная с версии 4.2, Gantt поддерживает горизонтальную прокрутку временной шкалы с помощью:
-> Клавиша Shift + прокрутка колесом мыши.
С версии 6.3 вы можете изменить клавишу-модификатор по умолчанию с Shift на Alt или Meta с помощью свойства horizontal_scroll_key:
gantt.config.horizontal_scroll_key = "altKey";
Чтобы отключить горизонтальную прокрутку колесом мыши, установите свойство в false:
gantt.config.horizontal_scroll_key = false;
К началу