事件
我们将会分发一些事件,便于您轻松响应展示中的更改。Reveal.on()
用于添加事件监听器,Reveal.off()
用于移除它们。
Reveal.on('eventname', callbackFunction);
准备就绪
Reveal.js 加载所有非异步依赖并准备好接受 API 调用时,将触发 ready
事件。要检查 Reveal.js 是否已经“准备就绪”,可以调用 Reveal.isReady()
。
Reveal.on('ready', (event) => {
// event.currentSlide, event.indexh, event.indexv
});
我们还向 .reveal
元素添加了一个 .ready
类,以便您使用 CSS 将其关联起来。
Reveal.initialize
方法还会返回一个 Promise,当展示准备就绪时,它将解决。以下代码与为 ready
事件添加监听器是同义的
Reveal.initialize().then(() => {
// reveal.js is ready
});
幻灯片更改
每次幻灯片变化时都会触发slidechanged
事件。事件对象保存当前幻灯片的索引值以及对之前和当前幻灯片 HTML 元素的引用。
某些函数库(例如 MathJax(参见#226))可能会对幻灯片的转换和显示状态感到困惑。通常,可以通过从此回调函数调用其更新或呈现函数来修复此问题。
Reveal.on('slidechanged', (event) => {
// event.previousSlide, event.currentSlide, event.indexh, event.indexv
});
幻灯片过渡结束
slidechanged
事件在幻灯片发生更改后会立即触发。如果您想在幻灯片过渡完成后并完全可见时调用事件侦听器,可以使用slidetransitionend
事件。slidetransitionend
事件包含与slidechanged
相同的数据。
Reveal.on('slidetransitionend', (event) => {
console.log(event.currentSlide);
});
调整大小
当 reveal.js 更改演示文稿的比例时,会触发resize
事件。
Reveal.on('resize', (event) => {
// event.scale, event.oldScale, event.size
});