初始化
最常见的 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*
元素手动定义width
和height
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();