reveal.js - 在网格或棋盘上浏览幻灯片

时间:2014-06-27 15:08:48

标签: javascript html reveal.js

我想知道是否可以在reveal.js中的幻灯片之间导航,例如在网格或棋盘上移动(原因在帖子底部解释)。当您移动到新的幻灯片堆栈时,获得焦点的幻灯片是下一个堆栈的最顶层。这是面向表示的软件的正常行为,但不适用于面向幻灯片的工具。

我希望为某些需要在不同列的行中来回移动的演示文稿覆盖此行为,但我对Javascript完全没有信心。到目前为止,我发现源中可能发生更改的正确位置可能是:

    功能幻灯片中的
  • (实际更改幻灯片的那个):第1464行,将所有垂直索引设置为相同的值,而不是仅设置最后一张幻灯片。

  • 函数navigateLeft和navigateRight(第2537行和第2552行)仅使用水平索引而不是' indexh'和' indexv'。

一个不涉及源代码的可能解决方案是在一年前通过 jfriend00 using-arrowkeys-to-navigate-through-4x4-grid)在stackoverflow上发布的,但我不知道应该如何实现在外部.js文件或主.html文件中。


为什么我认为这很重要?
我将举一个不是我的例子,但很容易理解的例子 让我们假设您对50名患者进行了15项分析的临床研究,并且您希望查看所有图形(由Python,MATLAB或R以栅格或矢量格式生成),就像它们在照片网格上一样,排列患者在列和行分析。并且让我们说你想看到所有患者的第9次分析的所有结果。问题是,如果你点击"右箭头" key,reveal.js显示下一列的第一张(或最后一张访问过的)幻灯片 直观地说,这是您在向公众听众介绍时所希望的,而不是在私人办公室/实验室会议期间向您的老板或合作者提供。

1 个答案:

答案 0 :(得分:1)

好的,我找到了解决方案,我希望这会帮助其他人解决同样的问题。

在文件reveal.js中,你可以只注释第1550和1561行,并用indexv替换函数setPreviousVerticalIndex(零)的第二个参数。最终结果如下所示。

//if ( document.querySelector( HOME_SLIDE_SELECTOR ).classList.contains( 'present' ) ) {
// Launch async task
    setTimeout( function () {
        var slides = toArray( document.querySelectorAll( HORIZONTAL_SLIDES_SELECTOR + '.stack') ), i;
        for( i in slides ) {
            if( slides[i] ) {
                // Reset stack
                setPreviousVerticalIndex( slides[i], indexv );
            }
        }
    }, 0 );
//}

这样,每次更换幻灯片(调用功能幻灯片)时,每个堆栈的垂直索引都会与您正在移动的幻灯片相同。
请不要忘记再次缩小代码,或者只是在你的html文件中切换到reveal.js而不是rev​​eal.min.js。