Posted on

一、官方示例

项目地址:https://github.com/impress/impress.js

文件构成

impress:

  • js
    • impress.js(JavaScript文件,提供特效支持,核心库)
  • css
    • impress_demo.css(CSS文件,提供样式支持)
  • html
    • index.html(HTML文件,幻灯片入口)

二、HTML说明

头部

<!DOCTYPE html>
<html lang=“en”>
<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=“css/impress-demo.css” rel=“stylesheet” />
    <link rel=“apple-touch-icon” href=“apple-touch-icon.png” />
</head>

支持反馈
当浏览器不支持时会显示,可改写错误信息的内容。

<body class=“impress-not-supported”>
<div class=“fallback-message”>
    <p>你的浏览器不支持  impress.js</p>
    <p>你可以下载 Chrome 浏览器</p>
</div>

幻灯片区域

创建id为impress的div,文稿放在此div内:

<div id=“impress”>
</div>

操作提示分别用于在电脑和移动设备上提示用户怎么控制幻灯片:

<div class=“hint”>
    <p>Use a spacebar or arrow keys to navigate</p>
</div>
<script>
    if (“ontouchstart” in document.documentElement) {
        document.querySelector(“.hint”).innerHTML = “<p>Tap on the left or right to navigate</p>”;
}
</script>

初始化 impress

声明对impress.js的引用,并且初始化impress.js。

<script src=“js/impress.js”></script>
<script>impress().init();</script>

最后关闭标签:

</body>
</html>

三、创建幻灯

impress.js 创建了一个三维空间,所有的幻灯片都有各自的位置坐标(x,y,z)。

空间的中心是原点(0,0,0)。

其他的幻灯片或文字都是相对于这个原点来设置位置的。

所有幻灯片都使用一个div:

id(可选)——可以用来表示幻灯片的顺序,格式是id=“step-N”,(比如id=”step-2″,序号为2)。如果不指定id的话,幻灯片按照代码从上往下的顺序出现。
class(必须)——通常有两个值,“step”表示一个步骤,元素透明显示,“step slide”有幻灯片白色方框。

位置属性

data-x——表示x轴坐标
data-y——表示y轴坐标
data-z——表示z轴坐标

常用效果

data-rotate——表示旋转,分别有data-rotate-x,data-rotate-y和data-rotate-z(同data-rotate),值表示旋转的度数。data-scale——表示幻灯片的大小,如data-scale=”4″表示比其他幻灯片大四倍

data-transition-duration——幻灯片切换的时间,默认为1000,单位为ms(1000ms=1s)

data-perspective——表示视角,设为0则取消3D效果。默认为1000。

例子

第一个div创建了一个有白色底框的幻灯片,位置在第四象限,沿x轴顺时针旋转90度。文本是100px大小的“Hello, world!”。

<div class=“step slide” style=“font-size:100px” data-x=“0” data-y=“0”>
    <q>Hello, World!</q>
</div>

第二个div创建了一个透明的幻灯片,位置在第一张幻灯片的右上方,绕z轴旋转90度。

<div class=“step” data-x=“2000” data-y=“-2000” data-rotate-z=“90”>
    <q>Hello, You!</q>
</div>

第三个div创建了一个透明的幻灯片,位置在第二张下方。

<div class=“step” data-x=“2000” data-y=“-2000” data-z=“-5000” >
    <q>Hello, Boy!</q>
</div>

第四个div创建了一个透明的幻灯片,位置在第三张绕y轴旋转90度的地方,2倍大小。

<div class=“step” data-x=“-2000” data-y=“-2000” data-z=“-5000” data-rotate-x=“180” data-scale=“2”>
    <q>Hello!</q>
</div>

全览

<div class=“step” data-x=“-2000” data-y=“-2000” data-z=“-5000” data-rotate-x=“180” data-scale=“2”>
    <q>Hello!</q>
</div>

四、进阶媒体

<video>和 <audio>标签插入音视频,控制方式有三种:

controls显示视频控制条
loop自动播放,循环播放
autoplay 自动播放
<video width=“320” height=“460” autoplay>
    <source src=“video/test.webm” type=video/webm>
</video>

设置自动播放

var videoStep = document.getElementById(“video-step”);
var video = document.getElementById(“video”);
videoStep.addEventListener(“impress:stepenter”, function(){
    video.play();
}, false);
videoStep.addEventListener(“impress:stepleave”, function(){
    video.pause();
}, false);

设置幻灯片的id设为video-step,视频的id设为video。

<div id=“video-step” class=“step” data-x=“-50000” data-y=“2000” data-z=“-60000” data-scale=“6”>
    <video id=“video” width=“420” height=“340” autoplay>
        <source src=“video/IMG_1254.webm” type=“video/webm”>
    </video>
</div>

多个视频或音频

var video1 = document.getElementById(“video-1”);  
var video2 = document.getElementById(“video-2”);  

进入幻灯片时执行的函数变更为

videoStep.addEventListener(“impress:stepenter”, function(){  
    video1.play();  
    video2.play();  
}, false);  

演示地址:http://www.195440.com/html/impress/2/2.html

本文转载自: impress.js 使用教程

发表评论

邮箱地址不会被公开。 必填项已用*标注