日常と文化の融合。洗練されたスタイルが、静かに語りかける。
流行の本質を捉える。色のない世界でも、感性は鮮やかに輝く。
AOS(Animate On Scroll)ライブラリを使ったスクロール連動アニメーション。簡単な属性追加だけでプロフェッショナルなアニメーション効果を実現します。
<link rel="stylesheet"
href="https://unpkg.com/aos@2.3.1/dist/aos.css" /><script src="https://unpkg.com/aos@2.3.1/dist/aos.js"></script>
<script>
AOS.init({
duration: 800,
once: true,
});
</script>data-aos-anchor-placementは、アニメーションが発火するタイミングを細かく制御できる重要な属性です。要素ごとに個別設定するのがベストプラクティスです。
data-aos-anchor-placement="要素の位置-画面の位置"
/* 例 */
'top-bottom' /* 要素の上端が画面の下端に来た時(デフォルト) */
'top-center' /* 要素の上端が画面の中央に来た時 */
'center-center' /* 要素の中央が画面の中央に来た時 */
'bottom-center' /* 要素の下端が画面の中央に来た時 */top-center:通常のコンテンツに最適。要素の上端が画面中央に来たら発火。center-center:ギャラリーなど画像に最適。要素の中央が画面中央に来たら発火。
<!-- フェードイン -->
<div data-aos="fade">...</div>
<!-- 下から上へフェードイン -->
<div data-aos="fade-up">...</div>
<!-- 右からスライドイン -->
<div data-aos="fade-left">...</div>
<!-- ズームイン -->
<div data-aos="zoom-in">...</div>data-aos属性に効果名を指定するだけ。スクロールで要素が画面中央に来ると自動的にアニメーションが発火します。
fade /* 単純なフェードイン */
fade-up /* 下から上へ */
fade-down /* 上から下へ */
fade-left /* 右から左へ */
fade-right /* 左から右へ */zoom-in /* 拡大しながら表示 */
zoom-in-up /* 拡大+下から上へ */
zoom-out /* 縮小しながら表示 */flip-up /* 下から回転 */
flip-left /* 右から回転 */
slide-up /* 下からスライド */AOS.init({
duration: 800, // アニメーション時間(ms)
easing: 'ease', // イージング関数
once: true, // 一度だけ実行
offset: 120, // 追加オフセット(px)
delay: 0, // 遅延時間(ms)
disable: false, // 特定条件で無効化
});once: trueを設定すると、アニメーションは1回だけ実行されます。スクロールで戻っても再実行されないので、パフォーマンスが向上します。
anchorPlacementをグローバルに設定すると、ヒーローなど最初から画面内にある要素が発火しないことがあります。data-aos-anchor-placement属性で要素ごとに設定するのが確実です。
<div data-aos="fade-up"
data-aos-duration="1000"
data-aos-delay="200"
data-aos-anchor-placement="top-center">
カスタム設定の要素
</div><!-- ヒーロー:ページ読み込み時にフェード(デフォルトのtop-bottom) -->
<header data-aos="fade" data-aos-duration="1200">
<h1>FASHION IS CULTURE</h1>
</header>
<!-- 2カラム:要素上端が画面中央に来たら発火 -->
<div class="col" data-aos="fade-right" data-aos-anchor-placement="top-center">
<div class="col" data-aos="fade-left" data-aos-anchor-placement="top-center">
<!-- ギャラリー:要素中央が画面中央に来たら発火 + delay -->
<div class="gallery-item" data-aos="zoom-in" data-aos-anchor-placement="center-center">
<div class="gallery-item" data-aos="zoom-in" data-aos-anchor-placement="center-center" data-aos-delay="100">
<div class="gallery-item" data-aos="zoom-in" data-aos-anchor-placement="center-center" data-aos-delay="200">top-centerで要素が見え始めたら発火center-centerで画像中央が画面中央に来たら発火
disable: 'mobile'でモバイルでは無効化も可能prefers-reduced-motionに配慮が必要/* モーション軽減設定への対応 */
@media (prefers-reduced-motion: reduce) {
[data-aos] {
opacity: 1 !important;
transform: none !important;
transition: none !important;
}
}data-aos-delayを連番で設定してシーケンシャルなアニメーション