impress.js中文API文檔

簡介api

本身看:https://impress.js.org/#/bored瀏覽器

內容框架

HTML部分wordpress

一、根元素函數

<div id="container"><div>

全部步驟元素都要包括在這個根元素中,須要指定id,初始化時使用,若是不指定,impress框架會自行搜索id爲impress的元素,若是沒有則失敗動畫

二、步驟元素spa

<div id="step1" class="step">
  <p>這是第一張</p>
<div>

展現內容都要寫在步驟元素內,每個步驟元素對應一次切換;步驟元素必須有.step類,步驟元素能夠指定id,在自定義事件的時候使用code

三、步驟元素位置orm

步驟元素的位置所有經過HTML5提供的「data-*」進行設置blog

<div id="step2" class="step" data-x="-1000" data-y="-1500" data-z="300">
  <p>這裏展現了步驟元素的位置信息如何設置</p>
</div>

data-x:相對於步驟元素中心位置的X軸偏移量,單位爲px

data-y:相對於步驟元素中心位置的Y軸偏移量,單位爲px

data-z:相對於步驟元素中心位置的Z軸偏移量,單位爲px

<div id="step3" class="step" data-scale="3">
  <p>這裏展現了步驟元素的縮放如何設置</p>
</div>    

data-scale:相對於其餘步驟元素的縮放倍率

<div id="step4" class="step" data-rotate="90">
  <p>這裏展現了該步驟元素的旋轉量</p>
</div>

data-rotate:設置該步驟元素順時針方向的旋轉量(就是繞Z軸)

<div id="step5" class="step" data-rotate-x="90">
  <p>這裏展現了該步驟元素繞X軸上的旋轉量</p>
</div>

data-rotate-x:設置該步驟元素繞X軸的旋轉量

<div id="step6" class="step" data-rotate-y="90">
  <p>這裏展現了該步驟元素繞Y軸的旋轉量</p>
</div>

data-rotate-y:設置該步驟元素繞Y軸的旋轉量

<div id="step7" class="step" data-rotate-z="90">
  <p>這裏展現了該步驟元素繞Z軸的旋轉量</p>
</div>

data-rotate-z:設置該步驟元素繞Z軸的旋轉量(和data-rotate效果同樣)

<div id="step8" class="step" data-rotate-order="xyz">
  <p>這裏展現了該步驟元素在應用rotate屬性時繞x、y、z三個軸向上旋轉的前後順序</p>
</div>

data-rotate-order:設置改步驟元素在應用rotate屬性時繞x、y、z三個軸向上旋轉的前後順序,默認爲「xyz」’,既:先繞X軸旋轉,而後是Y軸,最後是Z軸,順序不同,最終效果也不同

注:若是有朋友搞不清楚X、Y、Z軸向問題,請看下面這張圖(圖片來源於張鑫旭的我的博客,http://www.zhangxinxu.com/wordpress/)

 

CSS部分

一、.past類

.past {
  display: none; }

  已經展現過的步驟元素會被添加上此類

二、.present類

.present .rotating {
  transform: rotate(-10deg);
  transition-delay: 0.25s;
}

  當前處於攝像機中心的步驟元素會被添加上此類,在添加動畫的時候,這個頗有用

三、.future類

.future {
  display: none;
}

  還未展現過的步驟元素會被添加上此類

 

四、.active類

.step {
  opacity: 0.3;
  transition: opacity 1s;
}
.step.active {
  opacity: 1
}

  當前處於攝像機中心的可見步驟元素會被添加上此類

五、.impress-on-*類

.impress-on-overview .step {
    opacity: 1;
    cursor: pointer;
}
.impress-on-step-1,
.impress-on-step-2,
.impress-on-step-3 {
  background: LightBlue;
}

  當某個步驟元素正在展現時,body標籤上會被添加一個.impress-on-*類,*指代當前展現步驟元素的id

六、.impress-not-supported類

.impress-not-supported .step {
  display: inline-block;
}

  當impress框架檢測到瀏覽器不支持所需的特性時,body標籤會自動被添加上該類,主要用於給用戶提示

JavaScript部分

一、impress([id])

var impressAPI = impress( "root" );

  用於新建impress實例的工廠函數,接收一個id字符串做爲根元素,若是不傳,impress會默認搜索id爲impress的元素

二、.init()

impress().init();

  初始化,每一個文檔只能有一個impress實例

三、.tear()

impress().tear();

  將DOM元素重置爲初始狀態,既init()前的狀態,高端玩家用於定製的操做

四、.next()

var api = impress();
api.init();
api.next();

  展現下一個,自定義操做的時候頗有用

五、.prev()

var api = impress();
api.init();
api.prev();

  展現上一個,自定義操做的時候頗有用

六、.goto(stepIndex|stepElementId|stepElement,[duration])

//接收步驟元素的索引
var api = impress();
api.init();
api.goto(7);

//接收步驟元素的id
var api = impress();
api.init();
api.goto( "overview" );

//接收步驟元素
var overview = document.getElementById( "overview" );
var api = impress();
api.init();
api.goto( overview );

  展現指定步驟元素,可接收步驟元素索引、id及該元素自己做爲參數,第二個可選參數表示切換時間,單位爲毫秒

七、事件

var rootElement = document.getElementById( "impress" );
rootElement.addEventListener( "impress:init", function() {
  console.log( "Impress init" );
});
impress().init();

  「impress:init」:初始化後會觸發該事件

var rootElement = document.getElementById( "impress" );
rootElement.addEventListener( "impress:stepenter", function(event) {
  var currentStep = event.target;
  console.log( "Entered the Step Element '" + currentStep.id + "'" );
});

  「impress:stepenter」:下一個步驟元素進入展現時會觸發該事件

var rootElement = document.getElementById( "impress" );
rootElement.addEventListener( "impress:stepleave", function(event) {
  var currentStep = event.target;
  var nextStep = event.detail.next;
  console.log( "Left the Step Element '" + currentStep.id + "' and about to enter '" + nextStep.id );
});

  「impress:stepleave」:當前步驟元素離開展現時會觸發該事件

結語:

以上就是impress.js的所有內容了,框架自己只是提供了切換的動畫,具體效果就靠朋友們發揮本身的腦洞了,文中錯誤及不足歡迎朋友們留言指出,謝謝!

相關文章
相關標籤/搜索