Atroposは、以下の機能をサポートするブラウザと互換性があります。
AtroposはNPMからインストールできます。
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スタイル次に、基本的なAtroposレイアウトをアプリに追加する必要があります。
<!-- main Atropos container (required), add your custom class here --><div class="atropos my-atropos"><!-- scale container (required) --><div class="atropos-scale"><!-- rotate container (required) --><div class="atropos-rotate"><!-- inner container (required) --><div class="atropos-inner"><!-- put your custom content here --></div></div></div></div>
次に、Atroposを初期化する必要があります。
// import Atropos libraryimport Atropos from 'atropos';// Initializeconst myAtropos = Atropos({el: '.my-atropos',// rest of parameters});
ESモジュールがない環境で使用する場合は、<script>タグでAtroposライブラリを追加できます。
<script src="path/to/atropos.min.js"></script><script>const myAtropos = Atropos({el: '.my-atropos',// rest of parameters});</script>
ブラウザで直接モジュールを使用する場合は、CDNからインポートできます。
import Atropos from 'https://cdn.jsdelivr.net/npm/atropos@2/atropos.min.mjs';const myAtropos = Atropos({el: '.my-atropos',// rest of parameters});
AtroposのメインCSSスタイルに加えて、Atroposのサイズを設定するなど、カスタムスタイルを追加する必要がある場合があります。
.my-atropos {width: 320px;height: 160px;}
| 名前 | 型 | デフォルト | 説明 | 
|---|---|---|---|
| el | HTMLElement | 文字列 | 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値 | 
| shadowScale | 数値 | 1 | 影のスケールファクター | 
| highlight | ブール値 | true | ハイライトを有効にする | 
| onEnter | 関数 | コールバック関数Atroposがアクティブ化された(ホバー時)ときに発生します | |
| onLeave | 関数 | コールバック関数Atroposが非アクティブ化された(ポインターアウト時)ときに発生します | |
| onRotate | function(x, y) | コールバック関数回転時に発生します。引数として xとyの回転角度を受け入れます | 
例
const myAtropos = Atropos({el: '.my-atropos',activeOffset: 40,shadowScale: 1.05,onEnter() {console.log('Enter');},onLeave() {console.log('Leave');},onRotate(x, y) {console.log('Rotate', x, y);}});
Atroposを初期化した後、いくつかの便利なメソッドとプロパティを備えた初期化されたインスタンスがあります
| 名前 | 型 | 説明 | 
|---|---|---|
| el | HTMLElement | メインコンテナのHTML要素 | 
| isActive | ブール値 | Atroposがアクティブ(ホバー)かどうかを示します | 
| params | オブジェクト | 初期化に使用されるAtroposパラメータ(デフォルトで拡張) | 
| destroy() | 関数 | Atroposを破棄し、すべてのイベントリスナーをデタッチするメソッド | 
| destroyed | ブール値 | Atroposが破棄されたかどうかを示します | 
例
// init Atroposconst myAtropos = Atropos({el: '.my-atropos',activeOffset: 40,});setTimeout(() => {// destroy it when neededmyAtropos.destroy();}, 10000)
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(最大回転角度)まで変化することを意味します。例
<div class="atropos"><div class="atropos-scale"><div class="atropos-rotate"><div class="atropos-inner"><!--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" /></div></div></div></div>
ご覧のとおり、AtroposをWebサイトまたはアプリに統合するのは簡単です。次のステップは次のとおりです。