使用reveal.js制作精美的网页版PPT

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


前言


最近在做季度总结和技术分享,所以需要做个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><linkrel="stylesheet"href="dist/reveal.css"><linkrel="stylesheet"href="dist/theme/white.css"></head><body><divclass="reveal"><divclass="slides"><section>Slide1</section><section>Slide2</section></div></div><scriptsrc="dist/reveal.js"></script><script>Reveal.initialize();
</script></body></html>

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


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


父子嵌套


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


<divclass="reveal"><divclass="slides"><section>Slide 1</section><section><section>            Slide 2-1
</section><section>            Slide 2-2
</section></section><section>Slide 3</section></div></div>

效果如下图所示:

嵌入脚本


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

使用Markdown


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



动态背景Backgrounnds


revealjs支持对每一页幻灯片使用自定义背景(包括视频).我们只需要在section标签中使用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实现如下:


<divclass="reveal"><divclass="slides"><section>Slide 1</section><section><sectiondata-transition="fade">            Slide 2-1
</section><sectiondata-transition="convex">            Slide 2-2
</section><sectiondata-transition="concave">            Slide 2-3
</section><sectiondata-transition="zoom">            Slide 2-4
</section></section><section>Slide 3</section></div></div>

效果如下:




导出PDF


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


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


效果演示:



代码如下:


<body><divclass="reveal"><divclass="slides"><sectiondata-background-image="./img/z1.png"data-background-opacity=".4"><h1>趣谈前端</h1><p>徐小夕</p></section><section><sectiondata-transition="fade"data-background-color="orange"><h1>趣谈前端 Javascript</h1></section><sectiondata-transition="convex"data-background-color="green"><h1>趣谈前端 Vue</h1></section><sectiondata-transition="concave"data-background-color="#61dafb"><h1>趣谈前端 React</h1></section><sectiondata-transition="zoom"data-background-color="#b32535"><h1>趣谈前端 Angular</h1></section></section><section><h1>NodeJS</h1><pre><codedata-trimdata-noescape>          const fs = require('fs')
          const Koa = require('koa')
          const app = new Koa()
</code></pre></section><section><h3>设计模式</h3><pclass="fragment">观察者模式</p><pclass="fragment">工厂模式</p><pclass="fragment">迭代器模式</p></section><section><h4>数据结构与算法</h4></section></div></div><scriptsrc="dist/reveal.js"></script><scriptsrc="plugin/notes/notes.js"></script><scriptsrc="plugin/markdown/markdown.js"></script><scriptsrc="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>


目录
相关文章
|
24天前
|
存储 JavaScript 前端开发
使用JavaScript构建动态交互式网页:从基础到实践
【10月更文挑战第12天】使用JavaScript构建动态交互式网页:从基础到实践
61 1
|
2月前
|
编解码 前端开发 JavaScript
javascript检测网页缩放演示代码
javascript检测网页缩放演示代码
|
2月前
|
Web App开发 JavaScript 前端开发
添加浮动按钮点击滚动到网页底部的纯JavaScript演示代码 IE9、11,Maxthon 1.6.7,Firefox30、31,360极速浏览器7.5.3.308下测试正常
添加浮动按钮点击滚动到网页底部的纯JavaScript演示代码 IE9、11,Maxthon 1.6.7,Firefox30、31,360极速浏览器7.5.3.308下测试正常
|
5天前
|
JavaScript
js实现简洁实用的网页计算器功能源码
这是一款使用js实现简洁实用的网页计算器功能源码。可实现比较基本的加减乘除四则运算功能,界面简洁实用,是一款比较基本的js运算功能源码。该源码可兼容目前最新的各类主流浏览器。
13 2
|
28天前
|
存储 JavaScript 前端开发
【JavaScript】网页交互的灵魂舞者
本文介绍了 JavaScript 的三种引入方式(行内、内部、外部)和基础语法,包括变量、数据类型、运算符、数组、函数和对象等内容。同时,文章还详细讲解了 jQuery 的基本语法和常用方法,如 `text()`、`html()`、`val()`、`attr()` 和 `css()` 等,以及如何插入和删除元素。通过示例代码和图解,帮助读者更好地理解和应用这些知识。
13 1
【JavaScript】网页交互的灵魂舞者
用CSS+JavaScript打造网页中的选项卡
用CSS+JavaScript打造网页中的选项卡
|
1月前
|
Web App开发 缓存 前端开发
前端RAG:使用Transformers.js手搓纯网页版RAG(二)- 基于qwen1.5-0.5B
本文继续探讨了RAG的后半部分,通过在浏览器中运行qwen1.5-0.5B模型实现了增强搜索全流程。然而,由于浏览器与模型性能限制,该方案更适合研究、离线及高隐私场景。文章提供了完整的前端代码,让读者能够动手尝试。此外,详细介绍了代码框架、知识库准备、模型初始化及问答实现等步骤,并展示了实际运行效果。受限于当前技术,除非在离线或高隐私环境下,网页大模型的应用仍需进一步优化。
|
1月前
|
存储 自然语言处理 文字识别
纯前端RAG:使用Transformers.js实现纯网页版RAG(一)
本文将分两部分教大家如何在网页中实现一个RAG系统,本文聚焦于深度搜索功能。通过浏览器端本地执行模型,可实现文本相似度计算和问答匹配,无需依赖服务器。RAG搜索基于高维向量空间,即使不完全匹配也能找到意义相近的结果。文中详细介绍了如何构建知识库、初始化配置、向量存储及相似度计算,并展示了实际应用效果。适用于列表搜索、功能导航、文档查询及表单填写等多种场景。
121 0
|
2月前
|
Web App开发 前端开发 JavaScript
HTML/CSS/JS学习笔记 Day3(HTML--网页标签 下)
HTML/CSS/JS学习笔记 Day3(HTML--网页标签 下)
|
2月前
|
JavaScript 前端开发
用JavaScript编程控制网页上checkbox选择状态:全选、全部取消、反选
用JavaScript编程控制网页上checkbox选择状态:全选、全部取消、反选
下一篇
无影云桌面