🔥 認識我們的全新專案 t0ggles - 您的終極專案管理工具! 🔥
JavaScriptReactVueSvelteElement

Atropos React 文件

瀏覽器相容性

Atropos 與支援以下功能的瀏覽器相容

安裝

我們可以從 NPM 安裝 Atropos

npm i atropos

樣式

首先,我們需要包含 Atropos 樣式表

<link rel="stylesheet" href="path/to/atropos.css" />

使用打包器(如 webpack),您可以直接從 JavaScript 導入樣式

// main.js
import '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 component
import 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 主要元件標籤
eventsElHTMLElement | 字串指標事件目標。如果未指定,事件處理器將附加到主要容器(el
activeOffset數字50啟動時(滑鼠懸停)的主要容器偏移量,基本上表示 translateZ
alwaysActive布林值false使 Atropos 永遠處於活動狀態
duration數字300啟動、離開和旋轉期間的轉場持續時間(以毫秒為單位)
rotate布林值true定義是否在指標移動時旋轉容器(啟動時)
rotateTouch布林值 | 字串true定義是否在觸控移動時旋轉容器(啟動時),必須啟用 rotate。也接受特殊值
  • scroll-y - 不會以初始垂直觸控移動(垂直捲動)旋轉容器,基本上不會阻止頁面垂直捲動
  • scroll-x - 不會以初始水平觸控移動(水平捲動)旋轉容器,基本上不會阻止頁面水平捲動
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陰影偏移量,基本上是陰影元素的 translateZvalue
shadowScale數字1陰影比例因子
highlight布林值true啟用高亮
scaleClassName字串額外的類別名稱 atropos-scale 元素
rotateClassName字串額外的類別名稱 atropos-rotate 元素
innerClassName字串額外的類別名稱 atropos-inner 元素
onEnter函數回調函數Atropos 啟動時(滑鼠懸停)將被觸發
onLeave函數回調函數Atropos 取消啟動時(指標移出)將被觸發
onRotate函數(x, y)回調函數旋轉時將被觸發。作為參數接受 xy 旋轉角度
rootChildren傳遞到此處的元素將被添加到 atropos 根元素
scaleChildren傳遞到此處的元素將被添加到 atropos-scale 元素
rotateChildren傳遞到此處的元素將被添加到 atropos-rotate 根元素

例如

import Atropos from 'atropos/react';
export default function App () {
return (
<div id="app">
<Atropos
activeOffset={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 整合到您的網站或應用程式很容易。所以以下是您的後續步驟