HTML5幻灯片库reveal.js使用

拓朴根系
• 阅读 18380

介绍

最近在准备一个团队内部的分享,觉得powerpoint写幻灯片太麻烦,效率太低。作为前端,就想到是否可以使用页面来做幻灯片。于是就去搜索了下有没有HTML5实现幻灯片的工具。经过对比,最后选择了了reveal.js来实现幻灯片。
reveal.js是一个用于实现幻灯片效果的库。使用该库。
github地址:github
提供了页面编辑功能:slides.com
官方demo: demo
我自己做的PPT地址:vuejs-ppt

特点

reveal.js有一下几个特点:

  • 支持标签来区分每一页幻灯片

  • 可以使用markdown来写内容

  • 支持pdf的导出

  • 支持演说注释

  • 提供JavaScript API来控制页面

  • 提供了多个默认主题和切换方式

幻灯片实现步骤

  1. reveal.js上下载压缩包,并解压

  2. 进入reveal.js文件夹,直接修改index.html文件就可以

  3. 编辑后好,打开页面就可以看到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>

html实现内容

标题和正文

section中的内容就是幻灯片的内容,你可以使用h2标签标示title, p表示内容。需要红色的字体可以直接设置stylecolorred
当某一页需要特殊背景色,可以使用data-backgroundsection上设置, 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键,就可以调出注释页面,注释页面包含了当前幻灯片,下一章幻灯片,注释,以及幻灯片播放时间。

markdown实现

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>

外置md文件

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的功能来实现pdf的转化。步骤是

  1. 再url后面添加print-pdf参数,访问后,页面会去加载打印用的css文件,页面效果就是pdf的样式。

  2. 右键选择打印。设置为保存pdf。

我试过保存pdf的功能,有内容会重叠,怀疑是样式没有处理好。

多主题

reveal.js提供了多种样式。可以通过引用不同的主题来实现。具体主题查看reveal.js/css/theme下的css文件。

总结

reveal.js来实现幻灯片,可以只关注内容,忽略各种切换效果。而且可以使用markdown来实现,大大提高了编写效率。对于最后生成的html文件,可以部署到服务器,这样只需要网络就可以进行分享,不需要使用U盘拷来拷去了。

点赞
收藏
评论区
推荐文章
blmius blmius
3年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
Karen110 Karen110
3年前
一篇文章带你了解JavaScript日期
日期对象允许您使用日期(年、月、日、小时、分钟、秒和毫秒)。一、JavaScript的日期格式一个JavaScript日期可以写为一个字符串:ThuFeb02201909:59:51GMT0800(中国标准时间)或者是一个数字:1486000791164写数字的日期,指定的毫秒数自1970年1月1日00:00:00到现在。1\.显示日期使用
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
Jacquelyn38 Jacquelyn38
4年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
Easter79 Easter79
3年前
Twitter的分布式自增ID算法snowflake (Java版)
概述分布式系统中,有一些需要使用全局唯一ID的场景,这种时候为了防止ID冲突可以使用36位的UUID,但是UUID有一些缺点,首先他相对比较长,另外UUID一般是无序的。有些时候我们希望能使用一种简单一些的ID,并且希望ID能够按照时间有序生成。而twitter的snowflake解决了这种需求,最初Twitter把存储系统从MySQL迁移
JYK1106 JYK1106
3年前
如何使用LaTeX制作PPT?
作为LaTeX排版软件,LaTeX主要被用来制作书籍和文章。但由于现代LaTeX系统主要以PDF文件为输出方式,授课、演讲用的计算机幻灯片也日益成为LaTeX的一个重要应用。LaTeX中专门用来制作幻灯片的工具有powerdot文档类、prosper文档类、pdfslide宏包、ppower4宏包、pdfscreen宏包等。但现在最流行的还属beamer文档
铁扇公主 铁扇公主
2年前
幻灯片怎样制作简单且专业?幻灯片制作软件分享~
幻灯片怎样制作简单且专业?幻灯片制作软件分享PowerPointLTSC2021formac中文版是个好选择,PowerPoint2021提供了丰富的设计工具和模板,可以帮助用户创建出高质量的演示文稿,同时还支持多媒体元素和动画效果,使演示文稿更加生动和有
铁扇公主 铁扇公主
1年前
PowerPoint 2021 for Mac:Mac电脑必备ppt制作软件
powerpoint2021mac版新增功能在线视频使用在线视频向幻灯片添加实时操作,然后无需离开应用即可查看。(此功能适用于Sierra和HighSierra(macOS版本10.13.4及更高版本)修剪媒体从Mac插入的音频或视频剪辑的开头或结尾删除不
流浪剑客 流浪剑客
1年前
Macos屏幕录像软件:ScreenFlow for Mac汉化版
是一款Mac平台上的屏幕录制和视频编辑软件。它可以帮助用户轻松地记录屏幕上的任何内容,包括应用程序、PowerPoint幻灯片、网站浏览等,并且还能捕捉计算机麦克风和摄像头的音频和视频。除了屏幕录制功能外,ScreenFlow还包括一个强大的视频编辑器,您
春风化雨 春风化雨
9个月前
FotoMagico macOS 激活版 FotoMagico 安装包下载
FotoMagico是一款专为Mac用户设计的专业级幻灯片制作软件,由BoinxSoftware开发。它以其强大的功能和丰富的特性,为用户在创建、编辑和分享幻灯片时提供了极大的便利和灵活性。FotoMagico拥有直观易用的界面设计,支持多种媒体文件的导入
美凌格栋栋酱 美凌格栋栋酱
5个月前
Oracle 分组与拼接字符串同时使用
SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(