最近在准备一个团队内部的分享,以为powerpoint
写幻灯片太麻烦,效率过低。做为前端,就想到是否可使用页面来作幻灯片。因而就去搜索了下有没有HTML5实现幻灯片的工具。通过对比,最后选择了了reveal.js
来实现幻灯片。reveal.js
是一个用于实现幻灯片效果的库。使用该库。
github地址:github
提供了页面编辑功能:slides.com
官方demo: demo
我本身作的PPT地址:vuejs-pptcss
reveal.js
有一下几个特色:html
支持标签来区分每一页幻灯片前端
可使用markdown来写内容vue
支持pdf的导出git
支持演说注释github
提供JavaScript API来控制页面浏览器
提供了多个默认主题和切换方式服务器
从reveal.js上下载压缩包,并解压markdown
进入reveal.js
文件夹,直接修改index.html
文件就能够网络
编辑后好,打开页面就能够看到PPT的内容。 按下S
键,会打开时间,下一张PPT,Notes等信息的页面,方便演示PPT
幻灯片的内容须要包含在<div class="reveal"> <div class="slides">
的标签中。
一个section
是一页幻灯片。当section
包含在section
中时,是一个纵向的幻灯片。
怎么理解呢? 能够这样理解:横向的幻灯片表明一章,纵向的幻灯片表明一章中的一节。那么横向的幻灯片在播放时是左右切换的,而纵向的幻灯片是上下切换的。For example:
<div class="reveal"> <div class="slides"> <section>Single Horizontal Slide</section> <section> <section>Vertical Slide 1</section> <section>Vertical Slide 2</section> </section> </div> </div>
section
中的内容就是幻灯片的内容,你可使用h2
标签标示title
, p
表示内容。须要红色的字体能够直接设置style
的color
为red
。
当某一页须要特殊背景色,可使用data-background
在section
上设置, data-background-transition
表示背景的过渡效果。For example:
<section data-background-transition="zoom" data-background="#dddddd">
若是须要正文一段一段出现。可使用fragment
。For Example:
<p class="fragment"></p>
reveal.js
使用highlight.js
来支持代码高亮。能够直接写code标签来实现, data-trim
表示去除多余的空格。For Example:
<pre><code data-trim> console.log('hello reveal.js!'); </code></pre>
在演说时,会用到注释,对于注释,能够经过<aside class="notes">来实现。For Example:
<aside class="notes"> 这里是注释。 </aside>
在幻灯片页面,按下s
键,就能够调出注释页面,注释页面包含了当前幻灯片,下一章幻灯片,注释,以及幻灯片播放时间。
reveal.js
不只支持html表示来实现内容, 还能够经过markdown
来实现内容。使用markdown
实现内容时,须要对section
标示添加data-markdown
属性,而后将markdown
内容写到一个text/template
脚本中。For Example:
<section data-markdown> <script type="text/template"> ## Page title A paragraph with some text and a [link](http://hakim.se). </script> </section>
背景色,fragment
功能的实现,能够经过注释来实现。For Example:
<section data-markdown> <script type="text/template"> <!-- .slide: data-background="#ff0000" --> - Item 1 <!-- .element: class="fragment" data-fragment-index="2" --> - Item 2 <!-- .element: class="fragment" data-fragment-index="1" --> </script> </section>
reveal.js
能够引用一个外置的markdown
文件来解析。For Example:
<section data-markdown="example.md" data-separator="^\n\n\n" data-separator-vertical="^\n\n" data-separator-notes="^Note:" data-charset="iso-8859-15"> </section>
一个markdown
文件中能够连续包含多个章内容。能够在section
中经过属性data-separator
, data-separator-vertical
来划分章节。For Example:
<section data-separator="---" data-separator-vertical="--" > <script type="text/template"> # 主题1 - 主题1-内容1 - 主题1-内容2 -- ## 主题1-内容1 内容1-细节1 -- ## 主题1-内容2 内容1-细节2 --- # 主题2 </script> </section>
对section
添加 data-separator-notes="^Note:"
属性,就能够指定Note:
后面的内容为当前幻灯片的注释。For Example:
# Title ## Sub-title Here is some content... Note: This will only display in the notes window.
能够利用浏览器保存为pdf的功能来实现pdf的转化。步骤是
再url后面添加print-pdf
参数,访问后,页面会去加载打印用的css文件,页面效果就是pdf的样式。
右键选择打印。设置为保存pdf。
我试过保存pdf的功能,有内容会重叠,怀疑是样式没有处理好。
reveal.js
提供了多种样式。能够经过引用不一样的主题来实现。具体主题查看reveal.js/css/theme
下的css文件。
用reveal.js
来实现幻灯片,能够只关注内容,忽略各类切换效果。并且可使用markdown
来实现,大大提升了编写效率。对于最后生成的html文件,能够部署到服务器,这样只须要网络就能够进行分享,不须要使用U盘拷来拷去了。