废话不多说,先上demo(建议在chrome下打开 F键全屏 esc退出全屏):

  1. 我的demo-博客园简介
  2. 官网demo
  3. 更多demo

今天为大家介绍一款基于css3和JavaScript的幻灯片播放工具,无意间发现了它,便爱不释手,弄清楚了它的使用方法,略记一二。如果你还在用PowerPoint做slides的话,真的可以尝试一下,不仅炫酷,熟悉了之后还会发现比传统的PPT制作更加简单。当然制作过程需要一点前端语言的技巧,如果没有,也没有关系,这里有可视化的制作工具,所见即所得,满足不同需求人群!

言归正传,首先因为它本质上就是页面,所以它的各种效果(比如翻页、全屏、放大)等都是基于JavaScript框架的,幸运的是这些框架都已经完全封装好了(如果需要你可以调用它的API),你只需要编写每个slide页面的代码就可以了,而这些代码就是简单的html了,甚至可以用markdown来编写。

接着进入实战,该项目的代码托管在github里,除去其他一些引用的js、css文件,就只剩下一个简单的index页面了,可以看我整理的模板文件(模板文件效果预览点击这里,如果你需要,可以直接拿它来进行修改。

1、每个slide的编写


很显然,每个slide其实是每个<section>标签内的内容。直接在里面写html内容完全没有问题,这里简单讲下一些需要注意的点。

  • Slide Backgrounds

每个slide都能添加不同的背景,可以是颜色,图片,视频甚至是iframe:

<section data-background="#ff0000">
    <h2>All CSS color formats are supported, like rgba() or hsl().</h2>
</section>
<section data-background="http://example.com/image.png">
    <h2>This slide will have a full-size background image.</h2>
</section>
<section data-background="http://example.com/image.png" data-background-size="100px" data-background-repeat="repeat">
    <h2>This background image will be sized to 100px and repeated.</h2>
</section>
<section data-background-video="https://s3.amazonaws.com/static.slid.es/site/homepage/v1/homepage-video-editor.mp4,https://s3.amazonaws.com/static.slid.es/site/homepage/v1/homepage-video-editor.webm" data-background-video-loop>
    <h2>Video. Multiple sources can be defined using a comma separated list. Video will loop when the data-background-video-loop attribute is provided.</h2>
</section>
<section data-background-iframe="https://slides.com">
    <h2>Embeds a web page as a background. Note that the page won't be interactive.</h2>
</section>

也可以同时配置data-background-transition的值,表示背景的切换方式(如果前后两个slide背景有变化的话)。注意,背景切换和幻灯片切换是两个不同的效果。

  • Slide Transitions

我们可以在Reveal中配置两个slide之间的转换方式(全局配置),但是也可以在特定的slide中编写,优先级比全局的高:

<section data-transition="zoom">
    <h2>This slide will override the presentation transition and zoom!</h2>
</section>

<section data-transition-speed="fast">
    <h2>Choose from three transition speeds: default, fast or slow!</h2>
</section>

也可以在同一个slide中声明进入和离开切换方式:

<section data-transition="slide">
    The train goes on …
</section>
<section data-transition="slide">
    and on …
</section>
<section data-transition="slide-in fade-out">
    and stops.
</section>
<section data-transition="fade-in slide-out">
    (Passengers entering and leaving)
</section>
<section data-transition="slide">
    And it starts again.
</section>
  • Fragments

这个功能就好像做PPT时在一个slide中,点一下,出现一点东西,再点一下,再出现点。这里有个例子。默认的方式是原来不可见的变成可见,当然你可以有多种选择(注意它的格式 fragment):

<section>
    <p class="fragment grow">grow</p>
    <p class="fragment shrink">shrink</p>
    <p class="fragment fade-out">fade-out</p>
    <p class="fragment current-visible">visible only once</p>
    <p class="fragment highlight-current-blue">blue only once</p>
    <p class="fragment highlight-red">highlight-red</p>
    <p class="fragment highlight-green">highlight-green</p>
    <p class="fragment highlight-blue">highlight-blue</p>
</section>

但是都只是一个transition或许不能满足你的要求,比如你想要先出现,再隐藏,也有办法:

<section>
    <span class="fragment fade-in">
        <span class="fragment fade-out">I'll fade in, then out</span>
    </span>
</section>

上面的元素“变形”都是按照html的顺序从上往下的,你也可以用data-fragment-index指定顺序:

<section>
    <p class="fragment" data-fragment-index="3">Appears last</p>
    <p class="fragment" data-fragment-index="1">Appears first</p>
    <p class="fragment" data-fragment-index="2">Appears second</p>
</section>
  • code

当然作为coder最重要的或许就是code的展示了,reveal框架默认用highlight.js来高亮代码(注意配置中要增加依赖文件):

<section>
    <pre><code data-trim>
var a = 10;
var b = 20;
var c = a + b;
if (c === 30) {
  console.log('hello world');
}
    </code></pre>
</section>
  • Theming

可以选择指定的css来指定主题,个人比较喜欢black,这个可以在文件最开始引入。

  • markdown支持

section内支持markdown代码,比如这样:

<section data-markdown>
    <script type="text/template">
        ## Page title

        A paragraph with some text and a [link](http://hakim.se).
    </script>
</section>

需要注意的是这时Reveal的配置中(模板文件最后)就需要加上相应的markdown文件依赖。markdown文件也能独立存在然后在section中引用,markdown中每个元素也能添加相应的属性事件(比如需要点击才显示),详见document

2、Reveal的配置


Reveal的配置在页面底部的JavaScript中,你可以根据自己的喜好或者习惯配置幻灯片的播放,比如可以自动播放,也可以从右往左播放,都可以在这里设置,默认的配置在这儿。默认配置应该就是最佳配置了,或者可以修改下这个:

// Transition style
transition: 'default', // none/fade/slide/convex/concave/zoom
backgroundTransition: 'zoom', // none/fade/slide/convex/concave/zoom

这是两个slide之间切换的方式,前面说过可以给每个slide配置切换方式,当然具体的配置优先。

如果要使用markdown或者点击放大等功能,就要使用插件,在页面最下方的JavaScript文件中添加依赖。所有的依赖配置在这儿。很显然,有的配置你并用不到,比如那个math文件,是为了展示各种复杂的数学公式的。

3、Keyboard Bindings


比如你可以指定键来翻页等,这里介绍下一些default的快捷键。

  1. 上下左右翻页
  2. 空格 下一页
  3. Esc或者o键进入Overview mode(预览模式),退出也一样
  4. F键全屏,Esc退出全屏
  5. alt+click点击放大,前提是依赖文件中加入了zoom.js
  6. B或者.键暂停,再按一次恢复

4、PDF export


也许你觉得你传统的PPT文件可以保存,可以共享非常方便,其实我们的slides一样方便,它可以转为pdf文件。

html页面在chrome里可以被保存为pdf文件(打印选项中),很显然我们的slides也是html页面,只要把所有的slides显示在一个html页面中就ok了。这里我们可以改下url,加上print-pdf就可以了,实际上就是执行了一段代码,改变了文件的样式,接着就可以“打印”成pdf了。

例如将我的demo的url改成http://hanzichi.github.io/reveal/fish.html?print-pdf,可能在当前页面预览时样式会有点问题,但是在chrome下打开打印选项(ctrl+p),就能愉快地转换成PDF了。

我也把我的demo导成了PDF,点击这里查看效果

5、总结


除了具体每个slide的编写,其实最基本的设置有data-transitiondata-backgrounddata-background-transition以及fragment。还有一些有趣的设置,比如section之间可以嵌套,这样会形成一个竖着的幻灯片,再比如有些备注内容(PPT有这个功能),可以增加aside标签来展示,还可以嵌入自己的框架添加功能,有兴趣的可以参考官方文档

一款炫酷的幻灯片播放框架介绍(附demo及使用方法)的更多相关文章

  1. 一款炫酷Loading动画--载入成功

    简单介绍 昨天在简书上看到一篇文章.介绍了一个载入动画的实现过程 一款Loading动画的实现思路(一) 仅仅可惜原动画是IOS上制作的.而看了一下.作者的实现思路比較复杂,于是趁着空暇写了一个And ...

  2. 一款炫酷Loading动画--载入失败

    简单介绍 上一篇文章一款炫酷Loading动画–载入成功.给大家介绍了成功动画的绘制过程,这篇文章将接着介绍载入失败特效的制作. 相比成功动画,有了前面的经验,失败动画的过程就显得比較简单了. 动画结 ...

  3. HTML5打造的炫酷本地音乐播放器-喵喵Player

    将之前捣腾的音乐频谱效果加上一个播放列表就成了现在的喵喵播放器(Meow meow Player,额知道这名字很二很装萌~),全HTML5打造的网页程序,可本地运行也可以挂服务器上用. 在线Demo及 ...

  4. (转载)android炫酷实用的开源框架(UI框架)

    可以实现一些场常用炫酷效果,包含android-lockpattern(图案密码解锁).Titanic(可以显示水位上升下降的TextView).Pull-to-Refresh.Rentals-And ...

  5. 推荐六款炫酷的HTML5效果插件

    1. HTML5 3D图片阴影翻转动画 效果很酷 分享一款很酷的HTML5 3D动画特效,这款3D特效可以为你的图片增加阴影的效果,而且可以让图片在鼠标滑过的时候出现3D翻转的动画效果.这和HTML5 ...

  6. iOS开发之窥探UICollectionViewController(五) --一款炫酷的图片浏览组件

    本篇博客应该算的上CollectionView的高级应用了,从iOS开发之窥探UICollectionViewController(一)到今天的(五),可谓是由浅入深的窥探了一下UICollectio ...

  7. 推荐一款炫酷的提示框插件SweetAlert

    官方网址 http://t4t5.github.io/sweetalert/ 项目地址 https://github.com/t4t5/sweetalert

  8. 使用CuteSlider做网站炫酷的幻灯片

    cuteSlider 1.预览 官网:http://www.cuteslider.com/ 应用:http://www.dutphonelab.org/ 2.资料 文档:http://pan.baid ...

  9. 程序猿必备的10款超炫酷HTML5 Canvas插件

    1.超炫酷HTML5 Canvas 3D旋转地球动画 这是一款基于HTML5 Canvas的3D地球模拟动画,动画以太空作为背景,地球在太空中旋转,同时我们也可以拖拽鼠标来从不同的角度观察地球.另外我 ...

随机推荐

  1. 天书笔记:如何创建一个现代的footer(页脚)

    此笔记纯属本人脑残笔记,阅读困难不理解属正常现象,初学者尽量不要阅读,否则轻则口吐白沫重则走火入魔,切记切记 老规矩,效果图 这个布局也是从b站看到的,回来自己实现了一遍 HTML: <div ...

  2. lamp安装

    一.简介 什么是LAMPLAMP是一种Web网络应用和开发环境,是Linux, Apache, MySQL, Php/Perl的缩写,每一个字母代表了一个组件,每个组件就其本身而言都是在它所代表的方面 ...

  3. CSS3之让背景图片全部显示

    起初是在处理一个图片显示的问题, 图片没有有一部分没有显示出来, 之后用到了background-size, 发现有必要总结一下. background-size 首先声明 background-si ...

  4. (二)工厂方法模式-C++实现

    工厂方法模式:定义一个用于创建对象的借口,让子类决定实例化哪一个类. Factory method使一个类的实例化延迟到子类. 当系统准备为用户提供某个类的子类的实例,又不想让用户代码和孩子类形成耦合 ...

  5. 第18章 图元文件_18.2 增强型图元文件(emf)(2)

    18.2.7 增强型图元文件的查看和打印程序 (1)传递EMF到剪贴板,剪贴板类型应为:CF_ENHMETAFILE (2)CopyEnhMetaFile用于复制图元文件 (3)剪贴板中的图元文件会自 ...

  6. OAuth2授权原理

    最近在做第三方接入的,初步定下使用OAuth2协议,花了些时间对OAuth2的授权方式做了些了解. 我还记得一两年前,跟一位同事聊起互联网时,当时我说过一个想法: 目前不少较为稀有的资源,很多都是论坛 ...

  7. onSaveInstanceState() 和 onRestoreInstanceState()

    本文介绍Android中关于Activity的两个神秘方法:onSaveInstanceState() 和 onRestoreInstanceState(),并且在介绍这两个方法之后,再分别来实现使用 ...

  8. HTML 学习笔记 JavaScript (变量)

    变量是储存信息的容器. 实例 var x=2; var y=3; var z=x+y; 就像代数那样 x=2 y=3 z=x+y 在代数中,我们使用字母(比如 x)来保存值(比如 2).通过上面的表达 ...

  9. jquery noConflict详解

    noConflict是防止其他库也用了$作为全局变量而引起的冲突,我们看看jquery是怎么做的 首先jquery在代码的开始部分定义了2个私有变量: _jQuery = window.jQuery ...

  10. 实现鼠标拖动canvas绘制的图片

    不啰嗦上代码: <html> <head> <meta http-equiv="Content-Type" content="text/ht ...