31

到目前为止,我很喜欢 Reveal.js。不过,我遇到的一个问题是,我的无线演示遥控器通常只能生成左/右箭头键击。我的 Reveal.js 幻灯片大量使用了它的二维功能以及片段。这意味着我的遥控器只会向右,而不是向下。

Reveal.js API 看起来应该足够强大,可以连接一些东西,以便“右箭头”在可能的情况下首先向下推进,然后再向右推进,同时考虑到碎片。不幸的是,我的 JS-fu 不是那么强大,所以我想我会问其他人是否以前做过类似的事情并有一些指示。如果有其他更好的方法,我也愿意接受。我只是不想被物理地束缚在我的键盘上。

4

7 回答 7

37

您想要的是它会导航到“下一个”而不是“右”,这是右箭头键的默认绑定。您可以通过覆盖默认键绑定来实现此目的。这里有一些文档:https ://github.com/hakimel/reveal.js/#keyboard-bindings

在您的情况下,您希望右箭头键(keycode 39)绑定到“next”,并且可能还覆盖左箭头键(keycode 37)以绑定到“prev”。这是示例代码(将其添加到 Reveal.initialize 配置中添加文件末尾):

keyboard: {
    39: 'next',
    37: 'prev'
}
于 2013-10-28T07:10:53.550 回答
6

reveal.js 有一个内置的遥控器!如果您查看自述文件中的依赖项,最后一项Reveal.initialize是激活遥控器的选项!它会弹出一个您可以扫描的二维码;用于与演示文稿同步的网站(通过互联网,而不是本地 wifi/蓝牙),并允许您使用触摸屏设备控制演示文稿。甚至还有一个专门为使用遥控器而简化的应用程序(适用于 iOS),我相信它被称为 RemotesLite。

使用遥控器时,轻按相当于空格键,向左/向右/向上/向下滑动是向左/向右/向上/向下,捏入/向外是概览模式的激活/停用。

希望这可以帮助!

2014 年 4 月 21 日更新

似乎最新版本的 Reveal 具有内置的演示者远程支持。最近用 Targus 演示遥控器做了一个演示,它开箱即用!

于 2013-10-28T04:31:21.340 回答
6

这对我有用。

Reveal.configure({
    keyboard: {
        38: 'next',
        40: 'prev'
    }
});
于 2016-02-24T15:46:34.967 回答
2

建议的解决方案仅部分解决了该问题。他们要么重新映射向上和向下箭头键,要么重新映射向左和向右箭头键。当您不知道演示者遥控器使用哪些键时,只需重新映射所有键:

// Either Reveal.initialize({ ... or
Reveal.configure({
    keyboard: {
        37: 'prev',
        38: 'prev',
        39: 'next',
        40: 'next'
    }
})

切换到概览模式(使用o)时,您仍然可以使用vim键绑定hjkl左、上、下和右导航。

使用此配置,您可以确保每个演示者遥控器都能正常工作。

于 2017-05-15T18:59:36.040 回答
1

我必须确保以正确的顺序设置我的幻灯片,但我的Logitech R800会正确处理所有片段和顺序(如果幻灯片下面有子内容,单击下一步会遍历这些内容,然后再次正确)。

于 2013-10-28T03:25:38.597 回答
0

我实现了更高级的“演示者模式”(请参阅​​ cloudogu/continuous-delivery-slides)。

您可以使用 切换它 ,。它甚至可以在重新加载您的页面后幸存下来。
如果您希望在重新加载后关闭演示者模式,请参阅此提交

Reveal.initialize({
    keyboard: {
        188: () => setPresenterMode(true)
    }
});

setPresenterMode(false);

function setPresenterMode(toggle) {
    const storage = localStorage;
    const storageKey = 'presenterMode';
    if (toggle) {
        storage.setItem(storageKey, JSON.stringify(!JSON.parse(storage.getItem(storageKey))));
    }
    const presenterMode = JSON.parse(storage.getItem(storageKey));
    if (presenterMode) {
        Reveal.addKeyBinding({keyCode: 39}, 'next');
        Reveal.addKeyBinding({keyCode: 37}, 'prev');
    } else {
        Reveal.removeKeyBinding(37);
        Reveal.removeKeyBinding(39);
    }
    console.log(`Set presenter mode: ${storage.getItem(storageKey)}`);
}
于 2019-12-04T16:15:13.060 回答
0

Reveal 3.8.0 添加了一个选项navigationMode,您可以linear通过按向右箭头或点击器按钮将其设置为向下滚动然后向右滚动。

Reveal.initialize({
  navigationMode: 'linear'
});

https://revealjs.com/vertical-slides/#navigation-mode

于 2021-04-02T14:38:04.727 回答