本文档解释了 reveal.js 中幻灯片导航的工作原理,涵盖了导航架构、导航方法以及如何自定义导航行为。幻灯片导航系统使演示者和观众能够在大纲中在幻灯片和片段之间移动。
有关特定于片段的导航行为的信息,请参阅 片段。有关基于 URL 的导航的信息,请参阅 URL 导航。
reveal.js 中的导航系统允许多个方向的演示文稿浏览。演示文稿组织在二维幻灯片网格中,支持片段(增量内容显示)。
来源: js/reveal.js1231-1289 js/controllers/controls.js214-276 js/controllers/fragments.js357-373
reveal.js 中的幻灯片以二维布局组织
来源: js/reveal.js1231-1289 js/reveal.js1040-1114
reveal.js 提供了多种导航幻灯片的方法
键盘控制器支持使用键盘按键进行导航。
| 键 | 方向 | 方法 |
|---|---|---|
| 右箭头, 空格键 | 下一张幻灯片/片段 | next() |
| 左箭头 | 上一张幻灯片/片段 | prev() |
| 上箭头 | 向上移动(垂直幻灯片) | up() |
| 下箭头 | 向下移动(垂直幻灯片) | down() |
| Page Up | 上一张幻灯片 | left() |
| Page Down | 下一张幻灯片 | right() |
| 概览 (o) | 切换概览模式 | overview.toggle() |
来源: js/controllers/keyboard.js js/reveal.js1231-1289
在支持触摸的设备上,可以使用触摸手势进行导航
导航控件显示为演示文稿角落的箭头
来源: js/controllers/controls.js214-276
点击进度条可以直接导航到对应点击位置的幻灯片。
来源: js/controllers/progress.js85-102
reveal.js 提供了一个用于程序化导航的 JavaScript API
来源: js/reveal.js1231-1289 js/controllers/fragments.js357-373
导航系统根据当前幻灯片位置和演示文稿结构确定可用路线。
availableRoutes() 方法返回一个对象,指示从当前位置可以进行哪些导航方向。
routes 对象包含每个方向的布尔值
reveal.js 支持两种导航模式
可以使用 navigationMode 配置选项来配置导航模式
来源: js/reveal.js534-540 js/controllers/controls.js219-238
片段是幻灯片中的元素,可以增量显示。片段导航系统与主导航系统集成。
与幻灯片类似,片段有自己的可用路线
片段路线与主导航系统集成,允许在幻灯片和片段之间无缝过渡。
来源: js/controllers/fragments.js62-78 js/controllers/fragments.js309-349
概览模式提供所有幻灯片的鸟瞰图,允许通过点击所需幻灯片进行直接导航。
来源: js/controllers/overview.js24-76 js/controllers/overview.js228-253
导航系统维护当前演示文稿位置和历史的状态信息。
关键状态变量包括
indexh:水平幻灯片索引indexv:垂直幻灯片索引previousSlide:上一个幻灯片元素的引用currentSlide:当前幻灯片元素的引用navigationHistory:记录导航方向在幻灯片之间导航时,会根据配置的过渡样式应用过渡效果
一些配置选项会影响导航行为
| 选项 | 默认 | 描述 |
|---|---|---|
controls | true | 显示导航控件 |
controlsTutorial | true | 帮助可视化导航方向 |
controlsLayout | 'bottom-right' | 控件的位置 |
controlsBackArrows | 'faded' | 后退箭头的外观 |
progress | true | 显示进度条 |
keyboard | true | 启用键盘导航 |
overview | true | 启用概览模式 |
touch | true | 启用触摸导航 |
navigationMode | 'default' | 导航模式(“default”或“linear”) |
fragments | true | 启用片段导航 |
fragmentInURL | false | 在 URL 中包含片段索引 |
mouseWheel | false | 启用通过鼠标滚轮进行导航 |
jumpToSlide | true | 允许通过数字键跳转到幻灯片 |
导航系统在幻灯片更改前后触发事件,以便进行自定义行为和集成
beforeslidechange:在幻灯片更改之前触发slidechanged:在幻灯片更改后触发fragmentshown:在片段显示时触发fragmenthidden:在片段隐藏时触发这些事件包含有关先前和当前幻灯片的数据,可用于实现自定义行为。
导航与多个其他组件集成