前言

最近在做季度总结和技术分享,所以需要做个PPT, 来回顾这半年来的技术贡献. 但苦于mac上运行PPT那感人的流畅度, 成功的激起了笔者的强迫症, 所以索性想办法通过技术的手段来做个网页版PPT, 这个时候笔者发现了reveal.js: 一个使用 HTML 语言制作演示文稿的 Web 框架,支持插入多种格式的内容,并以类似 PPT 的形式呈现. 花了15分钟系统的调研了一下, 觉得基本满足技术分享类PPT的要求, 所以决定采用该方案来实现我的网页版PPT. 这里列一下笔者的技术调研方法论, 供大家参考:

所以笔者接下来大致按照以上几个衡量标准, 来带大家一起感受一下如何快速通过reveal.js实现一个极具动感的PPT.

正文

首先笔者先来谈谈PPT的不足(非专业角度, 技术视角):

  • PPT虽然强大,但占据了磁盘的大量空间,运行时内存占用也不小;而且在 mac上跑 PPT 来就像乘上了印度的绿皮小火车。随着 mac 的普及和动画技术的发展,诸如Keynote、Prezi 等新秀陆续出现,它们不仅轻量且可以实现各种炫目的动画效果.

  • 制作需要花费大量时间, 受平台限制

所以对于不熟悉PPT套路的技术工作者来说, 往往很难快速制作出精美的PPT.

接下来我们再看看reveal.js的优势.

  • reveal.js可以把 Markdown 文件转为类似 PPT 的演示文稿,轻快省力,减少排版上的时间,让演讲者更专于文字内容;同时,也获得 PPT 所不具有的灵活性

  • 制作发布灵活、不限应用,不限平台, 只需修改或打开 HTML 文件

  • 丰富的特性,支持过渡动画、代码高亮、视频背景、Markdown 语法、导出 PDF 等

  • 极度轻量,占用空间和内存少

说了这么多revealjs的优点,接下来我们就来学习如何使用它吧.

reveal.js使介绍以及核心api

作为一名前端工程师, 我们很容易把reveal.js集成到我们的vue或者react项目中, 但是作为演讲类型的项目,我们直接用最原始的方式实现即可,首先我们需要引入相关的文件,具体可参考官网所说的步骤去做: revealjs.com/. 最简单的使用方式如下:

<html><head><link rel="stylesheet" href="dist/reveal.css"><link rel="stylesheet" href="dist/theme/white.css"></head><body><div class="reveal"><div class="slides"><p>Slide 1</p><p>Slide 2</p></div></div><script src="dist/reveal.js"></script><script>Reveal.initialize();</script></body>
</html>
复制代码

这样通过短短几行代码, 我们就能实现一个两页的PPT.

当然我们还能实现更加自由的演示动画, 父子嵌套结构, 专场动画等. 接下来我们介绍几个核心API.

父子嵌套

父子嵌套主要是一个PPT主题可能包含很多子主题, 要想实现父子主题分明的演示文档, 在reveal.js也很好实现, 只需要在p内部再包裹p标签即可. 代码如下:

<div class="reveal"><div class="slides"><p>Slide 1</p><p><p>Slide 2-1</p><p>Slide 2-2</p></p><p>Slide 3</p></div>
</div>
复制代码

效果如下图所示:

嵌入脚本

我们都知道技术类PPT肯定离不开代码, 我们在reveal.js中可以很容易的展示我们的代码,并且支持多种语言, 其框架底层集成了 业界比较有名的highlight.js. 使用方式如下:

使用Markdown

Markdown是技术工作者常用的编写文档的工具, revealjs同样也支持使用Markdown的方式来编写PPT, 是不是很贴切? 具体方式如下:

动态背景Backgrounnds

revealjs支持对每一页幻灯片使用自定义背景(包括视频).我们只需要在p标签中使用data-background即可, 并且支持背景透明. 具体demo如下:

Backgrounnds一共有如下属性可以使用:

  • data-background-image 当前页的背景图片地址

  • data-background-size 背景的大小

  • data-background-position 背景位置

  • data-background-repeat 背景的重复方式

  • data-background-opacity 背景透明度

  • data-background-video 视频背景的地址

  • data-background-video-loop 视频背景的循环模式

  • data-background-iframe 背景为iframe的url地址

  • data-background-interactive 是否能与iframe的内容交互

Fragments

Fragments用来高亮或者渐进式的展现元素.每一个包含fragment类名的元素都被视为渐进的元素, 它们会通过点击下一步来依次呈现在幻灯片中.

定制主题Theme

reveal.js提供了很多种不同风格的主题, 我们只需要引入不同的css即可. 包括黑色(black), 白色(white), league, beige, 天空(sky), 夜晚(night)等主题.大家可以自行感受一下.

Transitions转场动画

不同幻灯片进入页面的动画方式我们可以使用Transitions来设定. 以下是提供的几种默认转场动画:

  • fade 淡出

  • slide 滑出

  • convex 凸面旋转

  • concave 凹面旋转

  • zoom 放大

具体demo实现如下:

<div class="reveal"><div class="slides"><p>Slide 1</p><p><p data-transition="fade">Slide 2-1</p><p data-transition="convex">Slide 2-2</p><p data-transition="concave">Slide 2-3</p><p data-transition="zoom">Slide 2-4</p></p><p>Slide 3</p></div>
</div>
复制代码

导出PDF

导出PDF作为一个附加功能也算是比较贴心了,如果想了解使用方式可以参考https://revealjs.com/pdf-export/. 接下来我们就来实现一个动态的PPT demo, 供大家学习参考.

reveal.js制作一个一个动感PPT的demo

效果演示请访问地址: https://user-gold-cdn.xitu.io/2020/7/13/173473da6ed62d8a?imageslim

代码如下:

<body><div class="reveal"><div class="slides"><p data-background-image="./img/z1.png" data-background-opacity=".4"><h1>趣谈前端</h1><p>徐小夕</p></p><p><p data-transition="fade" data-background-color="orange"><h1>趣谈前端 Javascript</h1></p><p data-transition="convex" data-background-color="green"><h1>趣谈前端 Vue</h1> </p><p data-transition="concave" data-background-color="#61dafb"><h1>趣谈前端 React</h1> </p><p data-transition="zoom" data-background-color="#b32535"><h1>趣谈前端 Angular</h1></p></p><p><h1>NodeJS</h1><pre><code data-trim data-noescape>const fs = require('fs')const Koa = require('koa')const app = new Koa()</code></pre></p><p><h3>设计模式</h3><p class="fragment">观察者模式</p><p class="fragment">工厂模式</p><p class="fragment">迭代器模式</p></p><p><h4>数据结构与算法</h4></p></div></div><script src="dist/reveal.js"></script><script src="plugin/notes/notes.js"></script><script src="plugin/markdown/markdown.js"></script><script src="plugin/highlight/highlight.js"></script><script>// More info about initialization & config:// - https://revealjs.com/initialization/// - https://revealjs.com/config/Reveal.initialize({hash: true,// Learn about plugins: https://revealjs.com/plugins/plugins: [ RevealMarkdown, RevealHighlight, RevealNotes ]});</script>
</body>
复制代码

最后

如果想学习更多H5游戏, webpack,node,gulp,css3,javascript,nodeJS,canvas数据可视化等前端知识和实战,欢迎在公号《趣谈前端》加入我们的技术群一起学习讨论,共同探索前端的边界。

使用reveal.js制作精美的网页版PPT相关推荐

  1. php简单网页制作代码,用HTML和CSS以及JS制作简单的网页菜单界面的代码

    这篇文章主要介绍了使用HTML+CSS+JS制作简单的网页菜单界面,这个ABROAD项目所使用的JavaScript部分代码非常简单,需要的朋友可以参考下 写ABROAD项目用到了标签这个东东,其实标 ...

  2. 代码敲累了就来看看《PPT制作经验分享-发布版PPT》

    版权声明:本文为博主原创文章,未经博主允许不得转载. 博主的<PPT制作经验分享-发布版PPT> 话不多说,直接上PPT. 博主目前是一名刚出道不久的底层码农 在本科及研究生阶段一直从事宣 ...

  3. 使用reveal.js制作一个酷炫的网页ppt

    今天教大家使用reveal.js,制作一个简洁优雅的网页ppt.在这之前,你需要一些基本的HTML以及CSS的技能基础. 1.准备工作 下载插件,插件下载地址:https://github.com/h ...

  4. 使用reveal.js制作PPT,并部署至GitHub

    折腾了一天把PPT做好,经历千辛万苦终于上传到Github上实现预览,记下啦,以免下次再用的时候忘掉 制作PPT 一.安装reveal.js 1.基本安装(我觉得写个PPT,基本安装就可以啦) clo ...

  5. 使用 FlipClock.js 制作精美的时钟、定时器和倒计时功能

    FlipClock.js 被创建出来是因为其他的解决方案不够抽象,不能够在不重写的代码的情况下提供了深层次的自定义.有些库的参数过多,而另外一些则是脚本中的硬编码太多,不够灵活. 在参考许多现有的解决 ...

  6. 利用js制作的简单网页小游戏

    利用html和js制作的简单的网页小游戏 这个是我第一次利用js制作网页的小游戏,若有错误欢迎指出. 设计的游戏是类似于配对的小游戏.废话不多说,直接上代码,代码中有比较详细的说明. <!DOC ...

  7. 花了两天时间用html+css+js做了一个网页版坦克大战游戏

    大家好,我是孙叫兽,本期内容给大家分享如何用html+css+javaScript去做一个简易网页版坦克游戏. 目录 坦克游戏玩法及介绍 项目结构 源码地址: 坦克游戏玩法及介绍 我们先来看一下首页. ...

  8. web期末大作业:基于html+css+js制作 学校班级网页制作----校园运动会 4页

    ⛵ 源码获取 文末联系 ✈ Web前端开发技术 描述 网页设计题材,DIV+CSS 布局制作,HTML+CSS网页设计期末课程大作业 | 校园班级网页设计 | 我的班级网页 | 我的学校 | 校园社团 ...

  9. html+css+js制作结婚倒计时网页模板(520/七夕情人节/程序员告白)

    ❉ html+css+javascript制作结婚倒计时网页模板(520/七夕情人节/程序员告白) 一年一度的/520情人节/七夕情人节/生日礼物/告白师妹/圣诞节/元旦节跨年/程序员表白, 引用了C ...

最新文章

  1. android8.0 go 机型,安卓8.0良心!还开发了安卓GO, 适配给低配手机,魅族很尴尬!...
  2. [深入理解Android卷一全文-第九章]深入理解Vold和Rild
  3. 刚毕业的我,参与了一场大厂之间的争夺之战
  4. c语言 字符串map,C语言实现BitMap
  5. 可控硅失效现象_可控硅坏的原因有哪些
  6. react 执行入口_如何使用React执行CRUD操作
  7. linux 企业邮件服务器_什么是Linux服务器,为什么您的企业需要一个?
  8. linux netfilter路由表,Linux netfilter 学习笔记 之十四 netfilter模块会修改数据包关联的路由缓存吗...
  9. linux14.10硬盘安装,Windows 10下硬盘安装Ubuntu 14.10图文教程
  10. 管理感悟:先做难度大的工作
  11. Atitit json数据查询法 jsonpath 目录 1.1. 1.概述 1 1.2. 3.2。经营者特殊符号 1 1.3. # JSONPath expressions 2 1.4. Xpa
  12. 机器码、序列号、认证码、注册码的生成算法(五)
  13. 华为机试HJ70:矩阵乘法计算量估算
  14. 一个清华保送生妈妈对竞赛的感受,自主招生家长都要看看!
  15. CUDA编程实现求解单源Bellman-Ford最短 路径算法
  16. 微信小程序授权登录和账号登录
  17. U-Net网络理解与应用
  18. 思一独角兽好朋友群活动回顾——IBCA国际区块链与数字货币协会
  19. JS 和 CSS 是如何影响页面渲染的?
  20. javascript 图片轮播效果

热门文章

  1. FLUKE 9500B示波器校准软件 必坑
  2. Fidder显示抓取IP地址
  3. 宁夏大学本科毕业论文答辩和论文选题PPT模板
  4. UVA1220 Hali-Bula的晚会 Party at Hali-Bula 题解
  5. MACOS10.15使用CrossOver安装Enterprise Achitect
  6. 基于CATIAV6的模型建立
  7. 域名,COOKIE是什么?有什么用处?COOKIE SESSION的区别?COOKIE的失效期?
  8. 无盘服务器镜像如何删除空目录,如何删除移动硬盘里的顽固文件夹?
  9. tabBar.list[3].iconPath 文件不存在
  10. xp计算机考试资源管理,【2017年职称计算机考试WindowsXP考点利用资源管理器模式】- 环球网校...