Я большой поклонник detect.js. Это супер-крутая и настраиваемая среда для создания презентаций. И обычно я использую его для всех своих разговоров. Недавно я приобрел Logitech Spotlight (спасибо HolyJS) - высококлассный ведущий, который может делать много крутых вещей, выделять, увеличивать, вибрировать 😲. Но оказалось, что нельзя… переключать слайды в Show.js.
В чем проблема?
В Reveal.js есть классная функция - вы можете создавать двухмерные слайды, в которых ваш доклад разделен на главы с вложенными слайдами.
Вы можете перемещаться по слайдам с помощью стрелок (или клавиш h, j, k, l, но это не так удобно). Проблема в том, что Logitech Spotlight отправляет код клавиши 39 (стрелка вправо), когда вы нажимаете большую кнопку. Вместо перехода к следующему слайду он переходит к следующей главе. Какой облом 😕. Но как исправить эту проблему?
Переназначьте ключи в программном обеспечении для презентаций
Хотя у него много интересных функций, вы не можете этого сделать. Также можно попробовать сделать это в Системе, но похоже Mac OS не позволяет этого сделать. Я видел несколько сообщений о Karabiner, но не думаю, что он может сделать это для отдельного устройства.
Доработать Show.js
Похоже, лучшее решение, просто переназначьте ключи, особенно потому, что для этого есть API:
Reveal.configure({ keyboard: { 39: 'next', // Right Arrow 37: 'prev' // Left Arrow } });
Но… Как же тогда перемещаться по слайдам? 🤔 Да, вы можете использовать h, j, k, l (по умолчанию) или любые другие кнопки, но это просто неудобно. Стрелки - самый удобный и интуитивно понятный способ навигации. Так что, если мы не можем использовать стрелки, было бы очень хорошо использовать, например, ALT + ARROWS. Хорошо, давайте еще раз посмотрим на API, может быть, мы можем использовать пользовательские функции?
Reveal.configure({ keyboard: { 39: function(event) { if(event.altKey) { Reveal.navigateRight(); } else { Reveal.nextSlide(); } } });
Выглядит неплохо, но по какой-то причине это не сработало. 😔. И после некоторых исследований я понимаю, почему (код detect.js):
/** * Handler for the document level 'keydown' event. * * @param {object} event */ function onDocumentKeyDown( event ) { //... if( activeElementIsCE || activeElementIsInput || activeElementIsNotes || (event.shiftKey && event.keyCode !== 32) || event.altKey || event.ctrlKey || event.metaKey ) return; //...
Таким образом, вы не можете использовать модификаторы клавиатуры в раскрытии ... Но мы можем написать наш собственный плагин!
Решение
После всех этих исследований у меня не было выбора, кроме как написать собственный плагин. Он очень маленький, но, по крайней мере, мне не нужно писать этот код снова и снова. Https://github.com/bunopus/reveal-alt-arrows
Надеюсь, эта статья и плагин помогут тем, кто столкнулся с такой же проблемой. Если знаете решение получше - дайте знать!