📊

Reveal.js 入门教程

让网页演示变得优雅

教案演示

📚 什么是 Reveal.js?

Reveal.js 是一个基于 HTML/CSS/JavaScript 的开源演示框架

🎨
精美主题
多种内置主题
📝
Markdown
支持 MD 编写
💻
代码高亮
内置 highlight.js
动画效果
多种过渡模式
📱
响应式
适配各种设备
📄
PDF 导出
打印或分享

🚀 快速开始

方式一:CDN 引入

<link rel="stylesheet" 
  href="https://cdn.jsdelivr.net/npm/reveal.js@5.1.0/dist/reveal.css">
<link rel="stylesheet" 
  href=".../theme/white.css">
<script src=".../reveal.js"></script>
<script>
  Reveal.initialize();
</script>

方式二:npm 安装

npm install reveal.js

import Reveal from 'reveal.js';
import 'reveal.js/dist/reveal.css';

const deck = new Reveal({
  hash: true,
  transition: 'slide'
});
deck.initialize();
💡 CDN 方式最简单,无需安装即可快速演示

📋 基础 HTML 结构

<div class="reveal">
  <div class="slides">
    <section>
      <h1>第一页</h1>
      <p>内容...</p>
    </section>
    <section>
      <h2>第二页</h2>
    </section>
  </div>
</div>
  • 1
    <section> 代表一张幻灯片
  • 2
    横向 --- 分隔页面
  • 3
    纵向 -- 创建垂直幻灯片

🎨 主题选择

主题说明适用场景
black黑色背景技术演示
white白色背景文档教程
night深色主题暗光环境
beige米色背景温馨演讲
league蓝灰配色商务演示
<link href=".../theme/white.css" rel="stylesheet">

✨ 过渡动画

效果类型

none
fade 淡入淡出
slide 滑动
convex 凸起
concave 凹陷
zoom 缩放

配置方式

Reveal.initialize({
  transition: 'slide',
  transitionSpeed: 'default'
});
也可在单页指定:
<section data-transition="zoom">

💻 代码高亮

Reveal.js 内置 highlight.js,支持 100+ 语言

<section>
  <pre><code class="language-python">
def hello():
    print("Hello World!")
  </code></pre>
</section>
支持:Python、JavaScript、Java、C++、Go、Ruby、SQL、HTML、CSS...

🎭 Fragments 逐步显示

让内容逐个出现,增强演示节奏

<li class="fragment">第一步</li>
<li class="fragment">第二步</li>
<li class="fragment">第三步</li>

效果类名

fade-out 渐出
fade-up/down/left/right
grow 放大
shrink 缩小
highlight-red 高亮

🖼️ 背景设置

  • 纯色
    data-background-color="#ff0000"
  • 图片
    data-background-image="bg.jpg"
  • 视频
    data-background-video="video.mp4"
  • 渐变
    data-background-gradient="linear-gradient(...)"
💡 视频背景会自动静音,建议使用 MP4 + WebM 双格式

📺 演讲者视图

快捷键

S 打开演讲者视图
ESC 全览模式
F 全屏
B 暂停

添加备注

<section>
  <h2>标题</h2>
  <aside class="notes">
    观众看不到的备注...
  </aside>
</section>

⚙️ 常用配置

Reveal.initialize({
  hash: true,              // URL 哈希跟踪
  controls: true,          // 导航箭头
  progress: true,           // 进度条
  center: true,            // 居中显示
  width: 960,              // 宽度
  height: 540,             // 高度
  slideNumber: true,       // 页码
  transition: 'slide',     // 过渡效果
  keyboard: true,          // 键盘控制
  overview: true,         // ESC 全览
});

🔗 嵌入网页

iframe 嵌入

<iframe 
  src="slides.html"
  width="100%"
  height="500"
  frameborder="0"
  allowfullscreen>
</iframe>

嵌入式模式

Reveal.initialize({
  embedded: true,
  hash: false
});

⚠️ 注意事项

  • 1
    国内访问 - 建议本地化或使用国内 CDN
  • 2
    浏览器兼容 - 不支持 IE11,需现代浏览器
  • 3
    性能 - 大图片/视频建议压缩
  • 4
    移动端 - 避免复杂动画和过小字体
  • 5
    PDF 导出 - 加 ?print-pdf 后打印

🚀 进阶技巧

自动播放

Reveal.configure({
  autoSlide: 5000,
  autoSlideStoppable: false
});

监听事件

Reveal.on('slidechanged', e => {
  console.log(e.indexh);
});

Reveal.on('fragmentshown', e => {
  console.log('fragment!');
});
🎉

总结

Reveal.js = HTML 演示框架
优势:版本控制友好 · 易于分享 · 支持 Markdown
适用:技术分享 · 文档教程 · 在线课程

📚 课后练习:
1. 用 CDN 方式创建一个 "Hello World" 幻灯片
2. 添加代码高亮和 fragments 效果
3. 尝试用 iframe 嵌入到网页中

📚 参考资源

💡 多看官方示例 demos,多动手练习!