初始化

最常见的 reveal.js 使用方式是在完整的视口中进行单一的展示。从版本 4.0 起,我们也支持在同一页面上 并行运行多个展示,以及以 ES 模块 的形式包含此库。

如果页面上只有一个展示,我们建议使用全局 Reveal 对象来初始化 reveal.js。Reveal.initialize 方法接受一个参数,即一个 reveal.js 配置对象

<script src="dist/reveal.js"></script>
<script>
  Reveal.initialize({ transition: 'none' });
</script>

initialize 方法会返回一个 Promise,一旦展示准备就绪,可以通过 API 进行交互,该 Promise 就会解决。

Reveal.initialize().then(() => {
  // reveal.js is ready
});

多个展示 4.0.0

要在同一页面并排运行多个演示文稿,您可以创建Reveal 类的实例。Reveal 构造函数接受两个参数;演示文稿的.reveal HTML 元素根元素和一个可选的 配置对象

请注意,你还需要将 embedded 配置选项设置为 true。此标志使演示文稿根据其.reveal 根元素大小调整其自身大小,而不是浏览器视口。你还需要为每个.reveal .deck* 元素手动定义widthheight CSS 属性,以便让它们显示出来。

默认情况下,reveal.js 将捕获文档中的所有键盘事件。对于嵌入式演示文稿,我们建议使用keyboardCondition: 'focused' 初始化,以便仅在观众聚焦演示文稿时才捕获键盘事件。

<div class="reveal deck1">...</div>
<div class="reveal deck2">...</div>

<script src="dist/reveal.js"></script>
<script>
  let deck1 = new Reveal(document.querySelector('.deck1'), {
    embedded: true,
    keyboardCondition: 'focused', // only react to keys when focused
  });
  deck1.initialize();

  let deck2 = new Reveal(document.querySelector('.deck2'), {
    embedded: true,
  });
  deck2.initialize();
</script>

ES 模块 4.0.0

我们提供两个 JavaScript 捆绑包,具体取决于你的用例。我们默认的演示样板使用dist/reveal.js,它具有广泛的跨浏览器支持 (ES5) 并向全局窗口公开 Reveal (UMD)。

第二个捆绑包是 dist/reveal.esm.js,它可以将 reveal.js 导入为一个 ES 模块。这个版本可以使用 <script type="module"> 直接在浏览器中使用,也可以在自己的构建进程中捆绑使用。

以下是导入和初始化 reveal.js 的 ES 模块版本以及 Markdown 插件的方法。

<script type="module">
  import Reveal from 'dist/reveal.esm.js';
  import Markdown from 'plugin/markdown/markdown.esm.js';
  Reveal.initialize({
    plugins: [Markdown],
  });
</script>

如果你正在 从 npm 安装 reveal.js 并对其进行捆绑,那么你应该可以使用

import Reveal from 'reveal.js';
Reveal.initialize();

取消初始化 reveal.js 4.3.0

如果你想取消初始化 reveal.js,你可以使用destroy API 方法。这将撤消框架对 DOM 所做的所有更改,移除所有事件侦听器以及取消注册/销毁所有插件。

Reveal.destroy();