Reveal.js
是一个非常好用的网页版 PPT
制作工具,就像网页版的 PowerPoint
。它不仅能制作漂亮的幻灯片,还提供了很多编程接口(API
),让你可以像搭积木一样自由定制你的演示文稿。
通过掌握这些 API,你可以:
- 自由控制幻灯片的播放和切换
- 随时调整演示文稿的外观和布局
- 添加各种插件和自定义功能
- 让演示文稿与用户产生更多互动
程序员只要学会使用这些 API,就能做出既专业又炫酷的演示文稿。

核心 API 使用说明
1. 初始化设置
Reveal.initialize(options)
这是最重要的 API,用来设置你的演示文稿的基本参数。
常用设置选项:
Reveal.initialize({
// 界面显示设置
controls: true, // 显示左右翻页按钮
progress: true, // 显示底部进度条
center: true, // 内容居中显示
touch: true, // 支持手机触摸操作
autoSlide: 5000, // 自动播放,每5秒切换一张
// 操作设置
keyboard: true, // 支持键盘操作
overview: true, // 支持缩略图模式
loop: false, // 播放完不循环
// 切换效果设置
transition: "slide", // 切换效果:滑动
transitionSpeed: "default", // 切换速度:正常
backgroundTransition: "fade", // 背景切换:淡入淡出
// 尺寸设置
width: 960, // 宽度
height: 700, // 高度
margin: 0.1, // 边距
minScale: 0.2, // 最小缩放比例
maxScale: 1.5, // 最大缩放比例
});
2. 幻灯片控制
翻页控制
// 下一页
Reveal.next();
// 上一页
Reveal.prev();
跳转到指定页面
// 跳转到第3张幻灯片(注意:从0开始计数)
Reveal.slide(2);
// 跳转到第2张幻灯片的第2个子页面
Reveal.slide(1, 1);
// 跳转到第1张幻灯片的第2行第3列
Reveal.slide(0, 1, 2);
3. 获取当前状态
查看当前播放状态
const state = Reveal.getState();
console.log(state);
// 会显示:
// {
// indexh: 0, // 当前是第几张幻灯片
// indexv: 0, // 当前是第几个子页面
// indexf: 0, // 当前显示到第几个动画片段
// paused: false, // 是否暂停播放
// overview: false // 是否在缩略图模式
// }
获取当前页面信息
const indices = Reveal.getIndices();
console.log(indices);
// 会显示:
// {
// indexh: 0, // 当前水平位置
// indexv: 0, // 当前垂直位置
// indexf: 0, // 当前片段位置
// }
查看总页数
const total = Reveal.getTotalSlides();
console.log(`总共有 ${total} 张幻灯片`);
4. 监听事件
基本用法
// 当演示文稿加载完成时
Reveal.on("ready", () => {
console.log("演示文稿准备好了!");
});
// 当切换幻灯片时
Reveal.on("slidechanged", (event) => {
console.log("切换到第", event.indexh + 1, "张幻灯片");
});
// 当显示动画片段时
Reveal.on("fragmentshown", (event) => {
console.log("动画片段已显示");
});
// 当隐藏动画片段时
Reveal.on("fragmenthidden", (event) => {
console.log("动画片段已隐藏");
});
// 进入缩略图模式时
Reveal.on("overviewshown", () => {
console.log("进入缩略图模式");
});
// 退出缩略图模式时
Reveal.on("overviewhidden", () => {
console.log("退出缩略图模式");
});
常用事件说明:
ready
– 演示文稿加载完成slidechanged
– 幻灯片切换fragmentshown
– 动画片段显示fragmenthidden
– 动画片段隐藏overviewshown
– 进入缩略图模式overviewhidden
– 退出缩略图模式
5. 动态修改设置
运行时修改配置
// 改变切换效果
Reveal.configure({
transition: "fade", // 改为淡入淡出效果
});
// 隐藏控制按钮
Reveal.configure({
controls: false,
});
查看当前配置
const config = Reveal.getConfig();
console.log("当前设置:", config);
自定义键盘快捷键
// 设置自定义快捷键
Reveal.configure({
keyboard: {
27: () => {
console.log("按了ESC键");
}, // ESC键执行自定义操作
13: "next", // 回车键跳到下一页
32: null, // 空格键不执行任何操作(禁用默认功能)
},
});
6. 跨页面通信
// 启用跨页面通信功能
Reveal.initialize({
postMessage: true, // 允许通过消息控制
postMessageEvents: false, // 不发送所有事件
});
// 发送控制消息
const sendMessage = () => {
window.postMessage(
JSON.stringify({
method: "slide",
args: [2],
}),
"*"
);
console.log("已发送跳转消息");
};
// 接收消息
window.addEventListener("message", (event) => {
const data = JSON.parse(event.data);
console.log("收到消息:", data);
});
最后
Reveal.js
的 API 设计简洁且功能强大,主要分为以下几大类:
- 初始化与配置
Reveal.initialize(options)
:初始化演示文稿,支持丰富的参数配置(如控制按钮、进度条、过渡效果、尺寸等)。Reveal.configure(options)
:动态修改配置,无需重新初始化。Reveal.getConfig()
:获取当前的配置对象。
- 导航与控制
Reveal.next()
/Reveal.prev()
:切换到下一张或上一张幻灯片。Reveal.slide(h, v, f)
:跳转到指定的幻灯片(支持水平、垂直、片段索引)。- 支持自定义键盘快捷键,灵活绑定操作。
- 状态查询
Reveal.getState()
:获取当前演示文稿的完整状态(索引、暂停、概览等)。Reveal.getIndices()
:获取当前幻灯片的索引信息。Reveal.getTotalSlides()
:获取总幻灯片数量。
- 事件监听
Reveal.on(event, callback)
:监听各种演示文稿事件(如初始化完成、幻灯片切换、片段显示/隐藏、概览模式切换等),便于扩展和交互。
- 动态修改配置
Reveal.configure(options)
:在运行时动态修改配置,如切换主题、调整过渡效果、键盘快捷键等。
- 消息通信
- 支持
postMessage
API,可与父窗口或其他页面进行消息通信,便于嵌入式集成和远程控制。
总结:Reveal.js
的 API 体系覆盖了演示文稿的初始化、控制、状态管理、事件监听、消息通信和插件扩展等各个方面,既能满足基础演示需求,也支持高度定制和二次开发。通过灵活运用这些 API,用户可以打造出专业、交互性强、个性化的 HTML
演示文稿。
原文链接:https://code.ifrontend.net/archives/1429,转载请注明出处。
评论0