使用impress.js制作幻灯片

上周看到一个朋友做了很炫的缩放式幻灯片,可能因为对此知识了解的不多,找了好久才找到几个web幻灯片工具。通过筛选决定用Geek的 impress.js 。

impress.js是一款新兴的幻灯工具,它的效果类似Prezi,但是拥有3D的功能,而且是在MIT&GPL协议下开源,对于有一定的Web开发基础的人而言,真是一个福音!只需要简单的用一些html指令,并加载impress.js就可以制作出一个很绚丽的缩放式幻灯。

制作时首先你需要写一些head,这和普通的Web是一样的,但body不同。由于目前impress.js只支持Chrome、Firefox和Safari这样的现代浏览器(摸摸IE……),所以需要一个fallback message。

<body class="impress-not-supported">
<div class="fallback-message">
  <p>Your browser <b>doesn't support the features required</b> by impress.js, so you are presented with a simplified version of this presentation.</p>
  <p>For the best experience please use the latest <b>Chrome</b>, <b>Safari</b> or <b>Firefox</b> browser.</p>
</div>

然后开始写真正的主体,impress部分。这部分必须完全被框在“\ < div id="impress"\ >”之中。

第一中幻灯片是step slide,这个和普通的幻灯片很像,就是一页一页的。可以用如下的方法添加

<div id="page1" class="step slide" data-x="-1000" data-y="-1500">
  <q>第一页的幻灯片</q>
</div>

你需要写的是id、data-x和data-y。id就是一个名称,而data-x、data-y则是坐标。事实上impress.js是给你了一个很大场地布景,而你需要的就是把一张张幻灯片扔进去,放到恰当的位置。然后它会按照你扔的顺序进行展示。其实坐标还有一个,是data-z,这个坐标可以把你带入3D效果之中,进行缩放。

另一种幻灯就叫做step,不像前一种有个死板的框,这种幻灯片彻底去掉了限制你的框,而是直接的写在背景上。请看下面这个例子:

<div id="title" class="step" data-x="0" data-y="0" data-scale="4">
  <span>你看到的幻灯片由</span>
  <h1>impress.js</h1>
  <span>给你呈现</span>
</div>

这里特别的是有一个data-scale,表示这个幻灯片的大小,你可以把一页做得非常大或者非常小,来提供一个缩放的反差。还有一个旋转功能:

<div id="its" class="step" data-x="850" data-y="3000" data-rotate="90" data-scale="5">
  <p>这是一个 <strong>presentation tool</strong> <br/>
  作者从 <a href="http://prezi.com">prezi.com</a> 得到灵感<br/>
  利用现代浏览器<strong>CSS3 transforms and transitions</strong>的力量</p>
</div>

上面的data-rotate就是表示旋转的角度。

最后,你可以提供一个hint,告诉用户需要使用键盘的方向键来控制整个播放过程。如果用户刚点开幻灯片而没反应,这个提示会自动浮现。

<div class="hint">
  <p>请用方向键控制</p>
</div>

在页面的最后,你需要加载impress.js,我这里是直接引用作者的页面,但如果是离线的展示,建议下载下来使用。仅仅加载js是不够的,还需要用impress().init()来启动。

<script src="http://bartaz.github.io/impress.js/js/impress.js"></script>
<script>impress().init();</script>

事实上这个工具功能还有很多,我只是学了一些最基本的功能。官网的建议是直接看他提供的index.html,里面有详细的注释告诉你有什么功能,我做了一个页面,也是从作者提供的index.html改出来的。虽然这些东西很简单,但做一个演讲使用的幻灯片,也已经足够好了。我做的页面放在Gist上,整体代码见本页最后。

当然类似的工具不能不提Prezi,它是这个创意的最初实现,不过据说不支持中文。国内腾讯AlloyTeam也开发了一个叫做 iPresst 的工具,可以说是傻瓜级的好东西,不过由于是社交网络式的,有点不够隐私。impress.js最大的缺陷就是太Geek了,如果能够有个所见即所得的开发工具,一定能够推广开来。

<!doctype html>
<html lang="zh-cn">
<head>
 <meta charset="utf-8" />
 <meta name="viewport" content="width=1024" />
 <meta name="apple-mobile-web-app-capable" content="yes" />
 <title>impress.js 尝试</title>
  <link href="http://fonts.googleapis.com/css?family=Open+Sans:regular,semibold,italic,italicsemibold|PT+Sans:400,700,400italic,700italic|PT+Serif:400,700,400italic,700italic" rel="stylesheet" />
 <link href="http://bartaz.github.io/impress.js/css/impress-demo.css" rel="stylesheet" />
</head>
<body class="impress-not-supported">
<div class="fallback-message">
 <p>Your browser <b>doesn't support the features required</b> by impress.js, so you are presented with a simplified version of this presentation.</p>
 <p>For the best experience please use the latest <b>Chrome</b>, <b>Safari</b> or <b>Firefox</b> browser.</p>
</div>

<div id="impress">
 <div id="page1" class="step slide" data-x="-1000" data-y="-1500">
  <q>第一页的幻灯片:<br/>是否尝试过这样<b>幻灯</b>?</q>
  <q>这种幻灯片最初由Prezi带给世界</q>
 </div>
 <div class="step slide" data-x="0" data-y="-1500">
  <q>这种幻灯片通过ZUI的方式,彻底摆脱了传统幻灯片的“盒子限制”</q>
  <q><strong>唯一限制你的是你的创意!</strong></q>
 </div>
 <div class="step slide" data-x="1000" data-y="-1500">
  <q>后面还有<font color="red"><strong>更多惊喜!</strong></font></q>
 </div>
 <div id="title" class="step" data-x="0" data-y="0" data-scale="4">
  <span>你看到的幻灯片由</span>
  <h1>impress.js</h1>
  <span>给你呈现</span>
 </div>
 <div id="its" class="step" data-x="850" data-y="3000" data-rotate="90" data-scale="5">
  <p>这是一个 <strong>presentation tool</strong> <br/>
  作者从 <a href="http://prezi.com">prezi.com</a> 得到灵感<br/>
  利用现代浏览器<strong>CSS3 transforms and transitions</strong>的力量</p>
 </div>
 <div id="big" class="step" data-x="4000" data-y="2100" data-rotate="180" data-scale="6">
  <p>将你的想法视觉化</p>
 </div>
 <div id="end" class="step" data-x="7000" data-y="2500" data-rotate="90" data-scale="6">
  <p>请看<a href="http://bartaz.github.io/impress.js"><b>impress.js</b></a>
  <br/>
  开放的幻灯工具</p>
 </div>
 <div id="overview" class="step" data-x="3000" data-y="1500" data-scale="10">
 </div>
</div>

<div class="hint">
 <p>请用方向键控制</p>
</div>

<script>
if ("ontouchstart" in document.documentElement) {
 document.querySelector(".hint").innerHTML = "<p>请用方向键控制</p>";
}
</script>
<script src="http://bartaz.github.io/impress.js/js/impress.js"></script>
<script>impress().init();</script>
</body>
</html>

以上内容就是我给大家分享的使用impress.js制作幻灯片,代码很简单,希望对大家学习有所帮助。

(0)

相关推荐

  • js精美的幻灯片画集特效代码分享

    本文实例讲述了js制作精美的幻灯片画集特效.分享给大家供大家参考.具体如下: 这是一款基于javascript制作的精美幻灯片画集特效的插件,跟其他幻灯片有别的图片画廊.为什么说有所区别呢,因为这款插件的图片切换时包含4个方向的,即上下左右切换也是可以的,大家可以在实例中进行使用. 运行效果图:-------------------查看效果 下载源码------------------- 小提示:浏览器中如果不能正常运行,可以尝试切换浏览模式. 本实例的关键代码: var o = { init:

  • 使用 JavaScript 创建可维护的幻灯片效果代码第1/3页

    第一步:分析问题(Analizing the problem) 创建一个好的脚本,第一步应该是去分析哪些是你要完成的:我们想要创建一个照片的幻灯片效果,并且我们想要保持维护的方便. 如何创建一个幻灯片效果 在一个网站上拥有幻灯片有几种方法: 在文档中包含所有的图片.  当他运行在无 JavaScript 状态,这是一个安全的选择.而且,当页面被载完,所有的图片也会将被载完.然而,这个方式只适用于少量的图片. 在文档中包含第一张图片,并且有一个创建幻灯片功能的服务器端脚本.  这也是相当安全的,但

  • 纯javascript移动优先的幻灯片效果

    简要教程 wallop是一款移动优先的纯javascript幻灯片插件.这个幻灯片插件仅4k大小,它的原理仅是为HTML元素添加和移除适当的class来显示和隐藏它们,至于这些class样式你可以完全自定义.特点有: 移动优先 动画和过渡效果都使用CSS来生成 轻量级,仅4k大小 高度灵活性和可扩展性 可自定义事件和API 没有任何外部依赖 使用方法 使用该幻灯片插件首先需要引入wallop.css和Wallop.min.js文件. <link rel="stylesheet"

  • js淡入淡出焦点图幻灯片效果代码分享

    本文实例讲述了javascript淡入淡出焦点图幻灯片效果.分享给大家供大家参考.具体如下: 这是一款基于javascript实现的淡入淡出焦点图幻灯片效果代码,可以自定义标题,实现过程很简单. 运行效果图:-------------------查看效果 下载源码------------------- 小提示:浏览器中如果不能正常运行,可以尝试切换浏览模式. 为大家分享的js淡入淡出焦点图幻灯片效果代码如下 <head> <meta http-equiv="Content-Ty

  • JS实现FLASH幻灯片图片切换效果的方法

    本文实例讲述了JS实现FLASH幻灯片图片切换效果的方法.分享给大家供大家参考.具体实现方法如下: 复制代码 代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xh

  • 【JS+CSS3】实现带预览图幻灯片效果的示例代码

    一.前期准备 1.1 案例分析 适用场景:单例布局 1.2 方法论 V视图 HTML+CSS+调试 C js实现控制流程 D数据 优化扩展 二.代码 结构 <div class="slider"><!-- 特效区 --> <div class="main"><!-- 主视图区 --> <div class="main_i"> <div class="caption&quo

  • javascript制作幻灯片(360度全景图片)

    在给客户做产品演示时经常会用到幻灯片,拥有360度的全景图片效果给用户带来好的体验价值.在这里给大家介绍一款来自Robert Pataki的360全景幻灯实现教程,此款教程使用js来实现一个超酷的全景幻灯,具体内容如下: 在这个教程中没有使用到任何插件,我们将使用HTML,css和javascript来实现,当然,也使用是jQuery这个框架! 如何实现? 我们将使用预先按照360生成的图片进行轮播来实现动画展示效果.包含了180个图片.所以加载时间可能比较长. 代码实现 我们将在css代码中添

  • js实现幻灯片播放图片示例代码

    1,在页面添加下面的元素.展示出置出图片文件列表文件. 复制代码 代码如下: <select id="img_date" style="width: 100%; margin-top: 10px; height: 50%;" size="20"> <option value="图片的url">图片名字</option> </select> 2,播放文件列表的方法.主要是遍历文件列

  • JS实现的多张图片轮流播放幻灯片效果

    本文实例讲述了JS实现的多张图片轮流播放幻灯片效果.分享给大家供大家参考,具体如下: <body style="width: 715px; height: 95px;"> <script language="javascript" type="text/javascript"> <!-- /************************************************** 名称: 图片轮播类 创建时

  • javascript实现淘宝幻灯片广告展示效果

    本文实例讲述了javascript实现淘宝幻灯片广告展示效果的方法.分享给大家供大家参考.具体如下: 一.效果图如下: 二.代码部分: JS代码部分: function getClass(oParent,name){ var arr=[]; var oBj=oParent.getElementsByTagName("*"); for(var i=0;i<oBj.length;i++){ if(oBj[i].className==name){ arr.push(oBj[i]); }

随机推荐