【问题标题】:Jump to slide #n跳转到幻灯片#n
【发布时间】:2013-12-06 14:50:03
【问题描述】:

如何以交互方式跳转到特定幻灯片?

以编程方式,我可以使用 Reveal.slide(indexh, indexv, indexf)。

例如,在 S5 中,我可以输入幻灯片编号,然后按 Enter。

【问题讨论】:

  • 您可以覆盖默认键绑定:github.com/hakimel/reveal.js/#keyboard-bindings
  • 好的,但是对我来说如何定义一个提供与 S5 中相同行为的新键绑定并不明显。难道我们不应该要求开发者添加这个功能吗?
  • 免费软件的全部乐趣在于我们可以添加功能并将其作为拉取请求提交。

标签: javascript reveal.js


【解决方案1】:

Reveal.js Documentation 中有覆盖默认键绑定的简洁说明。他们这样说:

Reveal.configure({
  keyboard: {
    13: 'next', // go to the next slide when the ENTER key is pressed
    27: function() {}, // do something custom when ESC is pressed
    32: null // don't do anything when SPACE is pressed (i.e. disable a reveal.js default binding)
  }
}); 

数字 1-9 的键码是 49-57(0 是 48),所以我对 reveal.js event.keycode 开关的阅读表明您需要类似:

Reveal.configure({
  keyboard: {
    56: slide( 8 ), 
  }
}); 

我不是一个 jQuery 高手,但是编写一个函数来记录任何额外的数字并等待 enter 在跳转到幻灯片之前n 似乎是一种高级初学者级别的挑战(还有一个很多人都可以帮你解决的问题)。问题:如果我在进入 enter 之前输入一个非数字会发生什么? 5qenter 有什么作用?

【讨论】:

  • 我猜应该简单地忽略数字键后面的非数字键。
【解决方案2】:

对于最新版本的 Reveal,我用它来让它工作

Reveal.initialize({

    keyboard: {
        56: function() { Reveal.slide( 8 ) },
    },
});

【讨论】:

    【解决方案3】:

    我这样做是为了将 E 键设置为 跳到最后一张幻灯片,并将 J 键设置为 提示我让幻灯片转到

    <script>
     Reveal.initialize({
         keyboard: {
             69: () => { Reveal.slide(Reveal.getSlides().length-1) },
             74: () => { Reveal.slide(prompt("Slide no")-1) }
         }
     });
    </script>
    

    或者实际上,由于我使用org-reveal,我实际上所做的就是将其放入我的 ORG 文件中:

    #+REVEAL_INIT_OPTIONS: keyboard: {69:()=>{Reveal.slide(Reveal.getSlides().length-1)},74:()=>{Reveal.slide(prompt("Slide no")-1)}}
    

    【讨论】:

      【解决方案4】:

      只需注意 Amanda 的代码。我可以把它放在哪里?我不知道:它只是在 index.html 中,最后:

              Reveal.initialize({
                  controls: false,
                  progress: true,
                  history: true,
                  center: true,
                  keyboard: {
                    13: 'next', // go to the next slide when the ENTER key is pressed
                    27: function() {}, // do something custom when ESC is pressed
                    32: null // don't do anything when SPACE is pressed (i.e. disable a reveal.js default binding)
                  },
                  theme: Reveal.getQueryHash()
      

      【讨论】:

        【解决方案5】:

        为了它的价值,我编译了一个快速脚本,例如,通过按 1,7,enter,3,enter 然后幻灯片就跳了。

        <script type="text/javascript">
            const key_presses = [];
            const append = function(arr, item) {
                const idx = arr.length;
                arr.splice( idx, 0, item );
            }
            const pop = function(arr) {
                const l = arr.length;
                if (l === 0){
                    return false;
                }
                return arr.splice(l-1,l)[0];
            };
            const go_to_slide = function(evt) {
                if (evt.keyCode === 13) { // enter
                    if (key_presses.indexOf('enter') !== -1){
                        let val = pop(key_presses);
                        let size = 1;
                        let v = 0;
                        while(val !== 'enter') {
                            v = v + size *  val;
                            size = size * 10;
                            val = pop(key_presses)
                        }
        
                        let h = 0;
                        size = 1;
                        val = pop(key_presses);
                        while(val !== false) {
                            h = h + size * val;
                            size = size * 10;
                            val = pop(key_presses);
                        }
                        Reveal.slide(h-1, v-1);
                    } else {
                        append(key_presses, 'enter');
                    }
                } else {
                    append(key_presses, parseInt(evt.key, 10));
                }
            };
        </script>
        <script>
            Reveal.initialize({
                slideNumber: true,
                keyboard: {
                    13: go_to_slide,
                    48: go_to_slide,
                    49: go_to_slide,
                    50: go_to_slide,
                    51: go_to_slide,
                    52: go_to_slide,
                    53: go_to_slide,
                    54: go_to_slide,
                    55: go_to_slide,
                    56: go_to_slide,
                    57: go_to_slide,
                }
        }
        </script>
        
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多