我想知道是否可以在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显示下一列的第一张(或最后一张访问过的)幻灯片
直观地说,这是您在向公众听众介绍时所希望的,而不是在私人办公室/实验室会议期间向您的老板或合作者提供。
答案 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而不是reveal.min.js。