Atropos 與支援以下功能的瀏覽器相容
我們可以從 NPM 安裝 Atropos
npm i atropos
首先,我們需要包含 Atropos 樣式表
<link rel="stylesheet" href="path/to/atropos.css" />
使用打包器(如 webpack),您可以直接從 JavaScript 導入樣式
// main.jsimport 'atropos/css'
如果您使用 SCSS 預處理器,您可以透過以下方式從 SCSS 導入 Atropos 的樣式
// main.scss@import 'atropos/scss'
Atropos 附帶不同格式的樣式表。以下檔案可用
atropos.css
(匯出為 atropos/css
) - 所有 Atropos 樣式atropos.min.css
(匯出為 atropos/css/min
) - 壓縮的 Atropos 樣式atropos.scss
(匯出為 atropos/scss
) - SCSS 語法中的 Atropos 樣式atropos.less
(匯出為 atropos/less
) - LESS 語法中的 Atropos 樣式// import Atropos componentimport Atropos from 'atropos/react';export default function App () {return (<div id="app">{/* Atropos */}<Atropos className="my-atropos">{/* ... */}</Atropos></div>)}
除了 Atropos 的主要 CSS 樣式外,我們可能需要新增一些自訂樣式,例如設定 Atropos 大小
.my-atropos {width: 320px;height: 160px;}
名稱 | 類型 | 預設值 | 說明 |
---|---|---|---|
component | 字串 | 'div' | Atropos 主要元件標籤 |
eventsEl | HTMLElement | 字串 | 指標事件目標。如果未指定,事件處理器將附加到主要容器(el ) | |
activeOffset | 數字 | 50 | 啟動時(滑鼠懸停)的主要容器偏移量,基本上表示 translateZ 值 |
alwaysActive | 布林值 | false | 使 Atropos 永遠處於活動狀態 |
duration | 數字 | 300 | 啟動、離開和旋轉期間的轉場持續時間(以毫秒為單位) |
rotate | 布林值 | true | 定義是否在指標移動時旋轉容器(啟動時) |
rotateTouch | 布林值 | 字串 | true | 定義是否在觸控移動時旋轉容器(啟動時),必須啟用 rotate 。也接受特殊值
|
rotateXMax | 數字 | 15 | 沿 X 軸的最大旋轉角度(以度為單位) |
rotateYMax | 數字 | 15 | 沿 Y 軸的最大旋轉角度(以度為單位) |
rotateXInvert | 布林值 | false | 反轉沿 X 軸的旋轉(以度為單位) |
rotateYInvert | 布林值 | false | 反轉沿 Y 軸的旋轉(以度為單位) |
stretchX | 數字 | 0 | 在此值上沿 X 軸移動(平移)atropos 容器(以百分比表示)。例如,`50` 值將移動容器寬度的 +-50%。僅適用於多個 Atropos,當多個 Atropos 使用相同的父級 `eventsEl` 容器時 |
stretchY | 數字 | 0 | 在此值上沿 Y 軸移動(平移)atropos 容器(以百分比表示)。例如,`50` 值將移動容器高度的 +-50%。僅適用於多個 Atropos,當多個 Atropos 使用相同的父級 `eventsEl` 容器時 |
stretchZ | 數字 | 0 | 在此值上沿 Z 軸移動(平移)atropos 容器(以百分比表示)。例如,`50` 值將移動容器高度的 +-50%。僅適用於多個 Atropos,當多個 Atropos 使用相同的父級 `eventsEl` 容器時 |
commonOrigin | 布林值 | true | 將為具有相同父級的所有 Atropos 元件動態設定 `transform-origin` 到同一點(通常是指標位置)。僅適用於多個 Atropos,當多個 Atropos 使用相同的父級 `eventsEl` 容器時 |
shadow | 布林值 | true | 啟用陰影 |
shadowOffset | 數字 | 50 | 陰影偏移量,基本上是陰影元素的 translateZ value |
shadowScale | 數字 | 1 | 陰影比例因子 |
highlight | 布林值 | true | 啟用高亮 |
scaleClassName | 字串 | 額外的類別名稱 atropos-scale 元素 | |
rotateClassName | 字串 | 額外的類別名稱 atropos-rotate 元素 | |
innerClassName | 字串 | 額外的類別名稱 atropos-inner 元素 | |
onEnter | 函數 | 回調函數Atropos 啟動時(滑鼠懸停)將被觸發 | |
onLeave | 函數 | 回調函數Atropos 取消啟動時(指標移出)將被觸發 | |
onRotate | 函數(x, y) | 回調函數旋轉時將被觸發。作為參數接受 x 和 y 旋轉角度 | |
rootChildren | 傳遞到此處的元素將被添加到 atropos 根元素 | ||
scaleChildren | 傳遞到此處的元素將被添加到 atropos-scale 元素 | ||
rotateChildren | 傳遞到此處的元素將被添加到 atropos-rotate 根元素 |
例如
import Atropos from 'atropos/react';export default function App () {return (<div id="app"><AtroposactiveOffset={40}shadowScale={1.05}onEnter={() => console.log('Enter')}onLeave={() => console.log('Leave')}onRotate={(x, y) => console.log('Rotate', x, y)}>{/* ... */}</Atropos></div>)}
Atropos 使用特殊的 data-
屬性來控制元素偏移量(視差效果)
data-atropos-offset
- 以百分比控制元素偏移量/平移。
data-atropos-offset="5"
表示元素將在最大旋轉角度上移動其大小的 5%
。data-atropos-offset="-5"
表示元素將在最大旋轉角度上移動其大小的 -5%
。基本上,如果您希望元素看起來更近(在場景的前面),則此值應為正數。如果您希望元素出現在遠處(在場景的後面),則此值應為負數。
data-atropos-opacity
- 控制元素不透明度。data-atropos-opacity="0;1"
- 表示元素的不透明度將從 0
(初始狀態)變為 1
(最大旋轉角度)。data-atropos-opacity="0.1;0.8"
- 表示元素的不透明度將從 0.1
(初始狀態)變為 0.8
(最大旋轉角度)。data-atropos-opacity="1;0"
- 表示元素的不透明度將從 1
(初始狀態)降至 0
(最大旋轉角度)。例如
<Atropos>{/*Element with negative offset will move in reverse direction,making it appear behind the scene*/}<img src="image-bg.png" data-atropos-offset="-5" />{/*Element with no offset will not move*/}<img src="image-middle.png" data-atropos-offset="0" />{/*Element with positive offset will move in same direction,making it appear in front of the scene*/}<img src="image-front.png" data-atropos-offset="5" /></Atropos>
如您所見,將 Atropos 整合到您的網站或應用程式很容易。所以以下是您的後續步驟