前言:

  如果你已经厌倦了使用PPT设置路径、设置时间、设置动画方式来制作动画特效、那么Impress.js将是你一个非常好的选择。

  用它制作的PPT将更加直观、效果也是嗷嗷美观的。

  当然,如果用它来装X,是需要付出一些代价的,不过如果你是一个前端爱好者,理解HTML/CSS,那么就没什么问题了。

  看看网上的实例,动手练习练习,分分钟就能上手了。


介绍:

  impress.js 是国外一位开发者受 Prezi 启发,采用 CSS3 与 JavaScript 语言完成的一个可供开发者使用的表现层框架(演示工具)。  现在普通开发者可以利用 impress.js 自己开发出类似效果的演示工具,但性能比基于 FLASH 的 Prezi 更优。其功能包括画布的无限旋转与缩放,任意角度放置任意大小的文字,CSS3 3D 效果支持等。同时,也支持传统 PowerPoint 形式的幻灯演示。

  目前 impress.js 是基于 webkit 浏览器(Chrome、Safari)开发,而在其它基于非 webkit 引擎,但支持 CSS3 3D 的浏览器也能正常运行。

演示:

  手机暂时可能看不了,因为它是使用方向键(←/→)或Tab键切换播放的。

  从下面的下载地址即可下载Impress.js的源码,里面附带了官网的效果Demo。

  如果需要上面我做的那个例子,留言邮箱就OK了。


准备:

  1. Impress.js的源码已经发布在了GitHub上,下载即可:https://github.com/bartaz/impress.js
  2. 浏览器:Chrome、Safari、FireFox、IE10(有的人说不行,不知道为什么)。
  3. 代码编辑器(在这里我用的是WebStorm)。

  OK、一切准备就绪,开搞、

  大家一步一步跟着写,impress.js怎么用就会秒懂了。


步骤一:

  1. 新建一个HTML页面,在</body>结束之前引入上面下载的impress.js
  2. 在<body>中创建两个div:
    第一个class为“impress-not-supported”,表示不支持是的提示信息,你懂的;
    另一个的id为“impress”,表示幻灯片的容器。注意这里是id,我刚玩的时候就写成了class,结果impress一直报错找不到监听等错误信息。

  代码如下:

 <!DOCTYPE html>
 <html>
 <head lang="zh">
     <meta charset="UTF-8">
     <title>Impress.js Demo - 孤影</title>
 </head>
 <body>
     <div class="impress-not-supported"></div>

     <div id="impress"></div>

     <script type="text/javascript" src="impress.js"></script>
 </body>
 </html>

步骤二:

  现在我们就要来创建每一个切换的步骤了。

  在id为impress的div中创建这些要切换的步骤的div即可,div的class为“step”。

  div的id可有可无,如果没有id,则会按照默认从上向下的step的顺序一步步执行,访问地址如:“http://.../demo.html#/step-1”。反之,将会按照你自定义的id顺序执行。

  每个幻灯片显示的位置和大小、切换的效果等属性如下:

  • data-x:幻灯片的X坐标
  • data-y:幻灯片的Y坐标
  • data-scale:幻灯片显示的缩放比例
  • data-rotate:幻灯片旋转的度数
  • data-rotate-x:为3D使用,这个度数设置它相对X轴旋转多少度。
  • data-rotate-y:为3D使用,这个度数设置它相对Y轴旋转多少度。
  • data-rotate-z:为3D使用,这个度数设置它性对Z轴旋转多少度。

  OK、了解了这些属性之后,我们开始创建如下代码,幻灯片内容在这里我就用歌词了:

  1.引用impress.js代码之后,我们需要使用它来初始化页面,产生后面我们将要制作的效果,代码如下:

<1--  引入impress.js  --><script type="text/javascript" src="impress.js"></script>
<script type="text/javascript">
    impress().init();  // 初始化幻灯片的step
</script>

  2.创建第一个初始的幻灯片,他的data-x和data-y都设置为0,所以它会出现在页面的中间:

<div class="step" data-x="0" data-y="0">
    <h3>《Poker Face》</h3> - Lady Gaga
</div>

  3.我们创建第二个幻灯片,它的data-x为500,data-y依旧为0,所以切换到第二的时候,它会向右平移切换到这个幻灯片:

<div class="step" data-x="500" data-y="0">
    I wanna hold them like they do in Texas Plays.
</div>

  4.下面创建第三个幻灯片,它的data-x依旧为500,data-y为-400,所以它会向上平移400px切换至此:

<div class="step" data-x="500" data-y="-400">
    Fold them let them hit me raise it Baby stay with me.
</div>

  4.平移的效果是不是感觉没什么意思?下面我们第四张幻灯片来点儿花样:

  使用data-scale控制缩放的大小,在这里我设置为0.5,表示缩放为原大小的一半;data-x依旧500,data-y为-800。

  表示向上移动400px,并且缩放一半的大小,代码如下:

<div class="step" data-x="500" data-y="-800" data-scale="0.5">
    (I love it.)
</div>

  5.第五张幻灯片我们使用data-rotate属性来设置它的旋转动画。

  在这里,我设置当前的data-x为0、data-y依旧是-800,data-rotate为90。

  表示,它将会安装旋转90°的动画,想左翻转500px,显示当前幻灯片,代码如下:

<div class="step" data-x="0" data-y="-800" data-rotate="90">
    Love game intuition play the cards with Spades to start.
</div>

  6.下面来点儿终极的,设置data-x为-1200,data-y为0,表示当前幻灯片相对于前一张向左1200px向下800px。

  然后分别使用data-rotate-x、data-rotate-y、data-rotate-z设置旋转角度,并且使用data-scale设置缩放比例为放大4倍。

  代码如下:

<div class="step" data-x="-1200" data-y="0" data-rotate-x="30" data-rotate-y="-30" data-rotate-z="90" data-scale="4">
    And after he's been hooked I'll play the on that's on his heart.
</div>

  7.现在你已经可以打开浏览器运行代码了,是不是感觉效果相当霸气。

  当然,界面可能有点丑,你可以按照个人喜好写点样式。如果懒得写的话,也可以使用下面我简单些的几个样式:

    <style type="text/css">
        body{margin:0px; background:#000000; color:#00FF66; font-size: 20px;}
        div.step h3{display: inline-block;}
        div.step{                 width:400px; height: 100px; padding-top: 50px;                  text-align: center; border:1px solid #00FF66;                  box-shadow: 0px 0px 10px #00FF66; border-radius: 20px;        }
        div#overview{border:0px; box-shadow:0px 0px 0px transparent; }
    </style>

  OK、通过以上7个小步骤,我们就已经完成了一张简单粗暴的演示文稿了。

  你也就可以发挥自己独特的想象力来动手制作一个吓尿一片人的Web演示文稿的展示效果了。


附注:

  这里还有一个全局预览的效果,就是把所有step块的的内容全部放在一个平面显示,效果超赞。

  在这里,我在所有step后面创建一个id为overview的div,作为整体预览的展示块,展示缩放大小为放大3倍,x和y的位置如下等代码如下:

<div class="step" id="overview" data-x="-200" data-y="-500" data-scale="3"></div>

结尾:

  本实例所有代码如下:

 <!DOCTYPE html>
 <html>
 <head lang="zh">
     <meta charset="UTF-8">
     <title>Impress.js Demo - 孤影</title>
     <style type="text/css">
         body{margin:0px; background:#000000; color:#00FF66; font-size: 20px;}
         div.step h3{display: inline-block;}
         div.step{width:400px; height: 100px; padding-top: 50px; text-align: center; border:1px solid #00FF66; box-shadow: 0px 0px 10px #00FF66; border-radius: 20px;}
         div#overview{border:0px; box-shadow:0px 0px 0px transparent; }
     </style>
 </head>
 <body>
     <div class="impress-not-supported"></div>

     <div id="impress">
         <div class="step" data-x="0" data-y="0"><h3>《Poker Face》</h3> - Lady Gaga</div>
         <div class="step" data-x="500" data-y="0">I wanna hold them like they do in Texas Plays.</div>
         <div class="step" data-x="500" data-y="-400">Fold them let them hit me raise it Baby stay with me..</div>
         <div class="step" data-x="500" data-y="-800" data-scale="0.5">(I love it.)</div>
         <div class="step" data-x="0" data-y="-800" data-rotate="90">Love game intuition play the cards with Spades to start.</div>
         <div class="step" data-x="-1200" data-y="0" data-rotate-x="30" data-rotate-y="-30" data-rotate-z="90" data-scale="4">
             And after he's been hooked I'll play the on that's on his heart.
         </div>
         <div class="step" id="overview" data-x="-200" data-y="-500" data-scale="3"></div>
     </div>

     <script type="text/javascript" src="impress.js"></script>
     <script type="text/javascript">
         impress().init();
     </script>
 </body>
 </html>

本实例完整代码

  如果还需要再看看开头我做的那个演示实例的话,留言邮箱吧。

  当你制作出这么一个简单的演示文稿后,你应该记住,使用它制作出的效果如何,你的想象和创造力是唯一决定性的因素!


体会:

  正因为我们是前端,所以用前端技术做做各种尝试没什么不好,impress更可以让我们的演示文稿更有新意,所以简单了解下绝对是值得的,学习是最好的投资。

  优点:
  1. 个人非常喜欢overview的功能
  2. 因为HTML+CSS都需要自己完成,位置和效果都得自己经手,视觉效果都由自己掌控
  3. 在我用过的同类产品中视觉效果最绚,CSS3+3D效果,直接给观众看晕:)
  缺点:
  1. impress在视觉表现上确实非常强大,比起同样做演示文稿的 html5slides 和 deck.js, impress.js的复杂度上高了不少,而且如果想把演示文稿排版的好看可能需要花掉大量的时间.
  2. *如果闲impress麻烦的朋友可以去看看 html5slides 和 deck.js的资料,视觉效果会稍差一些,不过上手会简单不少。
  3. 不要把3D和旋转用得太花哨、太绚,看的人会晕,恰当就好哈

Impress.js上手 - 抛开PPT、制作Web 3D幻灯片放映的更多相关文章

  1. impress.js

    介绍一下 impress.js是一个非常炫酷的幻灯片展示框架,依靠CSS3技术. impress.js使用起来非常简单,下面就来简单介绍一下其用法. Start 首先,当然要引入impress.js. ...

  2. 一统江湖的大前端(1)——PPT制作库impress.js

    <一统江湖的大前端>系列是自己的学习笔记,旨在介绍javascript在非网页开发领域的应用案例和发现各类好玩的js库,不定期更新.如果你对前端的理解还是写写页面绑绑事件,那你真的是有点O ...

  3. js仿ppt,在线演示文档:Impress.js

    (附件) Impress.js是一款基于css3转 换和过渡.工作于现代浏览器(Google Chrome或Safari (或 Firefox 10 或 IE10)).并受prezi.com的理念启发 ...

  4. 如何使用impress.js做一个网页版本的PPT

    blockquote{font-size: 18px;line-height:1.5;margin:0;}line-height: 1.5; 要做一个网站制作规范培训,之前村长做过一次培训,但是后来一 ...

  5. ArcGIS Portal 10.4 本地坐标系的web 3d地形展示制作说明

    原文:ArcGIS Portal 10.4 本地坐标系的web 3d地形展示制作说明 ArcGIS Portal 10.4 本地坐标系的web 3d地形展示制作说明 By 李远祥 ArcGIS Por ...

  6. 如何用impress.js写有逼格的ppt

    概述 这是我学习课程impress让你的内容"舞"起来而做的总结和练手. 你可以点这里在线预览我做的ppt 注意:等加载完了之后,点击空格键翻页! 简化模板 下面是一个简化的模板 ...

  7. JS实现悬浮导航的制作--web前端

    思想:导航在这里只有两种状态,一种是初始状态.一种是固定布局状态.实现悬浮导航其实就是通过Javascript脚本语言控制导航的两种状态,主要是对两种状态成立条件的判断,明确了这些,实现起来就不会太难 ...

  8. impress.js初体验

    概述 如果你已经厌烦了使用PowerPoint制作PPT,那么impress.js是一个非常好的选择,用它做的PPT更加直观,效果也非常的不错.装X是需要一定代价的,不过如果你是个前端爱好者那么一切就 ...

  9. impress.js 一个创建在线幻灯的js库

    真的好奇怪,我居然会写前端技术的博客.没有办法的,最近实习,看的大多是前端.所以今天就用这个来练练手了. Impress.js 是一个非常棒的用来创建在线演示的Javascript库.它基于CSS3转 ...

随机推荐

  1. 试试SQLSERVER2014的内存优化表

    试试SQLSERVER2014的内存优化表 SQL Server 2014中的内存引擎(代号为Hekaton)将OLTP提升到了新的高度. 现在,存储引擎已整合进当前的数据库管理系统,而使用先进内存技 ...

  2. python开发编译器

    引言 最近刚刚用python写完了一个解析protobuf文件的简单编译器,深感ply实现词法分析和语法分析的简洁方便.乘着余热未过,头脑清醒,记下一点总结和心得,方便各位pythoner参考使用. ...

  3. 关于自己写C++的一点风格

    现在,我学了很长时间的C++,但是自己就是无法精通.许多知识是入门书上没有的.现在写C++最重要的就是风格问题. 我现在的C++风格: 把自己所有的东西都放在一个名称空间下. 没有全局的函数,有的函数 ...

  4. 探索ASP.NET MVC5系列之~~~5.缓存篇(页面缓存+二级缓存)

    其实任何资料里面的任何知识点都无所谓,都是不重要的,重要的是学习方法,自行摸索的过程(不妥之处欢迎指正) 汇总:http://www.cnblogs.com/dunitian/p/4822808.ht ...

  5. CSS浮动、定位

    这几天有空,整理了关于CSS浮动和定位的一些知识点,有什么欠缺的地方,欢迎大家批评指正. 一.文档流的概念指什么?有哪种方式可以让元素脱离文档流? 文档流,指的是元素排版布局过程中,元素会自动从左往右 ...

  6. nodejs模块发布及命令行程序开发

    前置技能 npm工具为nodejs提供了一个模块和管理程序模块依赖的机制,当我们希望把模块贡献出去给他人使用时,可以把我们的程序发布到npm提供的公共仓库中,为了方便模块的管理,npm规定要使用一个叫 ...

  7. iOS逆向工程之Hopper+LLDB调试第三方App

    LLDB是Low Level Debugger的简称,在iOS开发的调试中LLDB是经常使用的,LLDB是Xcode内置的动态调试工具.使用LLDB可以动态的调试你的应用程序,如果你不做其他的额外处理 ...

  8. 设置tomcat远程debug

    查看端口占用情况命令: netstat -tunlp |grep 8000 tomcat 启动远程debug: startup.sh 中的最后一行 exec "$PRGDIR"/& ...

  9. 关于CSS inline-block、BFC以及外边距合并的几个小问题

    CSS inline-block和BCF对于初学者来说,总是弄不太明白,下面记录下我在学习这块知识的过程中遇到的几个问题,供大家参考,有不足的地方,欢迎大家批评指正. 一.在什么场景下会出现外边距合并 ...

  10. atitit.管理学三大定律:彼得原理、墨菲定律、帕金森定律

    atitit.管理学三大定律:彼得原理.墨菲定律.帕金森定律 彼得原理(The Peter Principle) 1 彼得原理解决方案1 帕金森定律 2 如何理解墨菲定律2 彼得原理(The Pete ...