Impress.js上手 - 抛开PPT、制作Web 3D幻灯片放映

简介:   前言:   如果你已经厌倦了使用PPT设置路径、设置时间、设置动画方式来制作动画特效、那么Impress.js将是你一个非常好的选择。   用它制作的PPT将更加直观、效果也是嗷嗷美观的。

 

 

前言:

  如果你已经厌倦了使用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一直报错找不到监听等错误信息。

  代码如下:

 1 <!DOCTYPE html>
 2 <html>
 3 <head lang="zh">
 4     <meta charset="UTF-8">
 5     <title>Impress.js Demo - 孤影</title>
 6 </head>
 7 <body>
 8     <div class="impress-not-supported"></div>
 9 
10     <div id="impress"></div>
11 
12     <script type="text/javascript" src="impress.js"></script>
13 </body>
14 </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>

 


 

 

结尾:

  本实例所有代码如下:

 1 <!DOCTYPE html>
 2 <html>
 3 <head lang="zh">
 4     <meta charset="UTF-8">
 5     <title>Impress.js Demo - 孤影</title>
 6     <style type="text/css">
 7         body{margin:0px; background:#000000; color:#00FF66; font-size: 20px;}
 8         div.step h3{display: inline-block;}
 9         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;}
10         div#overview{border:0px; box-shadow:0px 0px 0px transparent; }
11     </style>
12 </head>
13 <body>
14     <div class="impress-not-supported"></div>
15 
16     <div id="impress">
17         <div class="step" data-x="0" data-y="0"><h3>《Poker Face》</h3> - Lady Gaga</div>
18         <div class="step" data-x="500" data-y="0">I wanna hold them like they do in Texas Plays.</div>
19         <div class="step" data-x="500" data-y="-400">Fold them let them hit me raise it Baby stay with me..</div>
20         <div class="step" data-x="500" data-y="-800" data-scale="0.5">(I love it.)</div>
21         <div class="step" data-x="0" data-y="-800" data-rotate="90">Love game intuition play the cards with Spades to start.</div>
22         <div class="step" data-x="-1200" data-y="0" data-rotate-x="30" data-rotate-y="-30" data-rotate-z="90" data-scale="4">
23             And after he's been hooked I'll play the on that's on his heart.
24         </div>
25         <div class="step" id="overview" data-x="-200" data-y="-500" data-scale="3"></div>
26     </div>
27 
28     <script type="text/javascript" src="impress.js"></script>
29     <script type="text/javascript">
30         impress().init();
31     </script>
32 </body>
33 </html>
本实例完整代码

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

 

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

 


 

 

体会:

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

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

 

【来自:张董'Blogs:http://www.cnblogs.com/LonelyShadow,转载请注明出处。】

亲们。码字不容易,觉得不错的话记得点赞哦。。

目录
相关文章
|
1月前
|
数据采集 Web App开发 JavaScript
Puppeteer的高级用法:如何在Node.js中实现复杂的Web Scraping
随着互联网的发展,网页数据抓取已成为数据分析和市场调研的关键手段。Puppeteer是一款由Google开发的无头浏览器工具,可在Node.js环境中模拟用户行为,高效抓取网页数据。本文将介绍如何利用Puppeteer的高级功能,通过设置代理IP、User-Agent和Cookies等技术,实现复杂的Web Scraping任务,并提供示例代码,展示如何使用亿牛云的爬虫代理来提高爬虫的成功率。通过合理配置这些参数,开发者可以有效规避目标网站的反爬机制,提升数据抓取效率。
Puppeteer的高级用法:如何在Node.js中实现复杂的Web Scraping
|
10天前
|
数据采集 存储 JavaScript
Puppeteer的高级用法:如何在Node.js中实现复杂的Web Scraping
在现代Web开发中,数据采集尤为重要,尤其在财经领域。本文以“东财股吧”为例,介绍如何使用Puppeteer结合代理IP技术进行高效的数据抓取。Puppeteer是一个强大的Node.js库,支持无头浏览器操作,适用于复杂的数据采集任务。通过设置代理IP、User-Agent及Cookies,可显著提升抓取成功率与效率,并以示例代码展示具体实现过程,为数据分析提供有力支持。
Puppeteer的高级用法:如何在Node.js中实现复杂的Web Scraping
|
6天前
|
Web App开发 JavaScript 前端开发
构建高效Web应用:Node.js与Express框架的深度整合
【9月更文挑战第28天】在现代Web开发领域,Node.js和Express框架的结合已成为打造高性能、易扩展应用的黄金组合。本文将深入探讨如何利用这一技术栈优化Web应用架构,提供具体实践指导,并分析其性能提升的内在机制。通过代码示例,我们将展示从基础搭建到高级功能的实现过程,旨在为开发者提供一条清晰的学习路径,以实现技术升级和项目效率的双重提升。
19 3
|
11天前
|
移动开发 JavaScript 数据可视化
|
25天前
|
人工智能 开发框架 前端开发
Web开发之Vue.js
Web开发之Vue.js
20 3
|
6天前
|
JSON JavaScript 前端开发
构建高效Web应用:Node.js与Express框架的完美结合
【9月更文挑战第28天】在现代Web开发中,Node.js和Express框架的结合为创建高性能、易扩展的应用提供了强有力的支持。本文将深入探讨如何利用这两种技术构建一个简单但功能强大的Web服务,同时提供代码示例以加深理解。
|
2月前
|
开发者 图形学 开发工具
Unity编辑器神级扩展攻略:从批量操作到定制Inspector界面,手把手教你编写高效开发工具,解锁编辑器隐藏潜能
【8月更文挑战第31天】Unity是一款强大的游戏开发引擎,支持多平台发布与高度可定制的编辑器环境。通过自定义编辑器工具,开发者能显著提升工作效率。本文介绍如何使用C#脚本扩展Unity编辑器功能,包括批量调整游戏对象位置、创建自定义Inspector界面及项目统计窗口等实用工具,并提供具体示例代码。理解并应用这些技巧,可大幅优化开发流程,提高生产力。
129 1
|
2月前
|
机器学习/深度学习 存储 前端开发
实战揭秘:如何借助TensorFlow.js的强大力量,轻松将高效能的机器学习模型无缝集成到Web浏览器中,从而打造智能化的前端应用并优化用户体验
【8月更文挑战第31天】将机器学习模型集成到Web应用中,可让用户在浏览器内体验智能化功能。TensorFlow.js作为在客户端浏览器中运行的库,提供了强大支持。本文通过问答形式详细介绍如何使用TensorFlow.js将机器学习模型带入Web浏览器,并通过具体示例代码展示最佳实践。首先,需在HTML文件中引入TensorFlow.js库;接着,可通过加载预训练模型如MobileNet实现图像分类;然后,编写代码处理图像识别并显示结果;此外,还介绍了如何训练自定义模型及优化模型性能的方法,包括模型量化、剪枝和压缩等。
34 1
|
2月前
|
Java 数据库连接 数据库
从零到精通:揭秘 Hibernate 构建持久层服务的全过程,你离数据持久化大师还有多远?
【8月更文挑战第31天】本文详细介绍了如何从零开始使用 Hibernate 构建一个持久层服务。首先,通过在 Maven 项目中添加必要的依赖,确保项目具备使用 Hibernate 的条件。接着,配置 `hibernate.cfg.xml` 文件以连接 MySQL 数据库,并设置了基本属性。然后定义了一个简单的 `User` 实体类及其映射关系。此外,还创建了一个 `HibernateUtil` 工具类来管理 `SessionFactory`。
28 0
|
2月前
|
Java 开发者 关系型数据库
JSF与AWS的神秘之旅:如何在云端部署JSF应用,让你的Web应用如虎添翼?
【8月更文挑战第31天】在云计算蓬勃发展的今天,AWS已成为企业级应用的首选平台。本文探讨了在AWS上部署JSF(JavaServer Faces)应用的方法,这是一种广泛使用的Java Web框架。通过了解并利用AWS的基础设施与服务,如EC2、RDS 和 S3,开发者能够高效地部署和管理JSF应用。文章还提供了具体的部署步骤示例,并讨论了使用AWS可能遇到的挑战及应对策略,帮助开发者更好地利用AWS的强大功能,提升Web应用开发效率。
51 0
下一篇
无影云桌面