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 | string | 'div' | Atroposのメインコンポーネントタグ |
eventsEl | HTMLElement | string | ポインターイベントのターゲット。指定しない場合、イベントハンドラーはメインコンテナ(el )にアタッチされます。 | |
activeOffset | number | 50 | アクティブ化された(ホバー時)メインコンテナのオフセット。基本的に、 translateZ の値 |
alwaysActive | boolean | false | Atroposを常にアクティブにする |
duration | number | 300 | アクティブ化、離脱、および回転中のトランジション時間(ミリ秒単位) |
rotate | boolean | true | ポインター移動時に(アクティブ化されたときに)コンテナを回転させるかどうかを定義します。 |
rotateTouch | boolean | string | true | タッチ移動時に(アクティブ化されたときに)コンテナを回転させるかどうかを定義します。rotate を有効にする必要があります。また、特別な値も受け入れます
|
rotateXMax | number | 15 | X軸に沿った最大回転(度単位) |
rotateYMax | number | 15 | Y軸に沿った最大回転(度単位) |
rotateXInvert | boolean | false | X軸に沿った回転を反転します(度単位) |
rotateYInvert | boolean | false | Y軸に沿った回転を反転します(度単位) |
stretchX | number | 0 | この値で、X軸に沿ってAtroposコンテナを移動(トランスレート)します(パーセンテージ単位)。例えば、`50`の値は、コンテナの幅の+-50%移動します。複数のAtroposが同じ親の`eventsEl`コンテナを使用する場合のみ。 |
stretchY | number | 0 | この値で、Y軸に沿ってAtroposコンテナを移動(トランスレート)します(パーセンテージ単位)。例えば、`50`の値は、コンテナの高さの+-50%移動します。複数のAtroposが同じ親の`eventsEl`コンテナを使用する場合のみ。 |
stretchZ | number | 0 | この値で、Z軸に沿ってAtroposコンテナを移動(トランスレート)します(パーセンテージ単位)。例えば、`50`の値は、コンテナの高さの+-50%移動します。複数のAtroposが同じ親の`eventsEl`コンテナを使用する場合のみ。 |
commonOrigin | boolean | true | 同じ親を持つすべてのAtroposコンポーネントに対して、同じ点(通常はポインターの位置)に`transform-origin`を動的に設定します。複数のAtroposが同じ親の`eventsEl`コンテナを使用する場合のみ。 |
shadow | boolean | true | 影を有効にします |
shadowOffset | number | 50 | 影のオフセット。基本的に影要素のtranslateZ 値 |
shadowScale | number | 1 | 影のスケールファクター |
highlight | boolean | true | ハイライトを有効にします |
scaleClassName | string | 追加のクラス名 atropos-scale 要素 | |
rotateClassName | string | 追加のクラス名 atropos-rotate 要素 | |
innerClassName | string | 追加のクラス名 atropos-inner 要素 | |
onEnter | function | コールバック関数Atroposがアクティブ化されたとき(ホバー時)に実行されます | |
onLeave | function | コールバック関数Atroposが非アクティブ化されたとき(ポインターアウト時)に実行されます | |
onRotate | function(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をWebサイトまたはアプリに簡単に統合できます。以下は次のステップです。