reveal.js是一个能够帮助我们很轻易地使用HTML来创建漂亮的演示效果,也就是我们常见的PPT幻灯片。reveal.js不依赖其他任何javascript库,是一个独立的javascript插件库。它提供了多种幻灯片过渡效果,是一个非常棒的在线演示库。
reveal.js还拥有许多高级特性,完整安装,某些 reveal.js 的功能,像外部的Markdown和演讲注释,需要演示文稿运行在本地的一个web服务器上,因此需要在nodejs环境下运行,安装node.js以及grunt,稍微比较复杂。本文采用简单安装,结合本站实例,使用reveal.js实现演示文稿的功能。
HTML
我们先引入主要的CSS文件以及js文件。CSS文件要在head内就载入,而reveal.js可以在</body>>前载入。
<link rel="stylesheet" href="https://zhishitu.com"
<link rel="stylesheet" href="https://zhishitu.com"
<script src="js/reveal.js"></script>
知识兔HTML标记的层次结构需要是 .reveal > .slides > section 这样的,<section> 代表一个幻灯片并且能够被无限地重复。如果我们将多个 <section> 放到另一个 <section>的内部,它们将会以垂直幻灯片的方式显示。<section>内部可以是文本、图片、多媒体等任意HTML内容。例如:
<div class="reveal">
<div class="slides">
<section>slide1</section>
<section>slide2</section>
</div>
</div>
知识兔Javascript
在页面最后,我们需要运行下面的代码来初始化幻灯片。注意,所有的配置的值都是可选的,下面展示的都是默认值:
<script>
Reveal.initialize({
// 是否在右下角展示控制条
controls: true,
// 是否显示演示的进度条
progress: true,
// 是否显示当前幻灯片的页数
slideNumber: 'c/t'
});
</script>
知识兔以上代码实现了可以允许右下角的控制条控制切换展示幻灯片、并显示演示幻灯片的进度条,以及显示幻灯片的页码。
选项设置
参数 | 描述 | 默认值 |
controls | 是否在右下角展示控制条 | true |
progress | 是否显示演示的进度条 | true |
slideNumber | 是否显示当前幻灯片的页数编号,也可以使用代码slideNumber: 'c / t' ,表示当前页/总页数。 | false |
history | 是否将每个幻灯片改变加入到浏览器的历史记录中去 | false |
keyboard | 是否启用键盘快捷键来导航 | true |
overview | 是否启用幻灯片的概览模式,可使用"Esc"或"o"键来切换概览模式 | true |
center | 是否将幻灯片垂直居中 | true |
touch | 是否在触屏设备上启用触摸滑动切换 | true |
loop | 是否循环演示 | false |
rtl | 是否将演示的方向变成RTL,即从右往左 | false |
fragments | 全局开启和关闭碎片。 | true |
autoSlide | 两个幻灯片之间自动切换的时间间隔(毫秒),当设置成 0 的时候则禁止自动切换,该值可以被幻灯片上的 ` data-autoslide` 属性覆盖 | 0 |
transition | 切换过渡效果,有none/fade/slide/convex/concave/zoom | 'default' |
transitionSpeed | 过渡速度,default/fast/slow | 'default' |
mouseWheel | 是否启用通过鼠标滚轮来切换幻灯片 | true |
此外,reveal.js还提供了全屏模式,只需要在键盘上点击 »F« 按键即可进入全屏模式,点击 »ESC« 按键可退出全屏模式。
reveal.js还有一个片段概念,片段被用来在一个幻灯片中来突出显示单独的一个元素。每一个带有 fragment 样式的元素将会在切换到下一个幻灯片之前被走过。默认的片段样式是开始不可见,然后淡入,我们可以将同一张幻灯片里的多个段落分作多个片段,并给他们加上.fragment样式即可,就像DEMO演示中的:
<section>
<h2>幻灯片切换方式</h2>
<p class="fragment">右下角控制条控制切换</p>
<p class="fragment">可以使用键盘方向键操作</p>
<p class="fragment">可以设置使用鼠标滚轮切换</p>
<p class="fragment">移动端滑动切换</p>
</section>
知识兔关于幻灯片切换效果,是通过transition配置值来设定的。我们也可以通过指定data-transition属性来重写全局配置。例如:
<section data-transition="zoom">
<h2>This slide will override the presentation transition and zoom!</h2>
</section>
知识兔还有一个问题,如何设置幻灯片背景?幻灯片包含在幕的一个有限区域中,默认情况下,允许它们适应任何视口和缩放一致性。你可以通过给你的<section>元素添加一个data-background属性来在幻灯片之外添加整个页面的背景。支持四种类型的背景:color, image, video和iframe。
reveal.js项目Github地址:https://github.com/hakimel/reveal.js