【簡単】画像や要素にアニメーション設定できるライブラリ「AOS」

【記事テーマ】
・スクロールしたときにアニメーションをつけて画像・要素を表示したい


WebサイトやHPを作成しているとき、下にスクロールしたときに画像やコンテンツが横からスライドインしてきたり、フェードインしてくるように見せると一段とオシャレ具合が増しますよね。

cssで「@keyframes」を使ったりすれば、実装できますが、「AOS」というJavaScriptのライブラリを使えば、とても簡単にできるので紹介します。

このライブラリはjQueryが不要のライブラリとなっております。

サンプルとサンプルソース

サンプル

スクロールが長いので気を付けてください。

フェードイン
(左から右へ)
フェードイン
(右から左へ)
フェードイン
(下から上へ)

空のhtmlファイル(demo.html等)を作成し、当ページのサンプルソースを貼り付けて、ブラウザで実行すると、すぐに動作確認できます!

サンプルソース

CDNを使うとライブラリのダウンロードも不要で以下のコピペだけで実装終了です!

HTML / JavaScript / css
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8"><title>デモ</title>

  <!--  独自ライブラリ読み込み -->
  <link rel="stylesheet" href="https://cdn.rawgit.com/michalsnik/aos/2.1.1/dist/aos.css">
  <script src="https://cdn.rawgit.com/michalsnik/aos/2.1.1/dist/aos.js"></script>
  <!--  /独自ライブラリ読み込み -->

</head>
<body >



<div style="height:40vh;"></div>

<div class="item" data-aos="fade-right" data-aos-delay="100">
フェードイン<br/>(左から右へ)
</div>

<div style="height:50vh;"></div>

<div class="item" data-aos="fade-left" data-aos-delay="100">
フェードイン<br/>(右から左へ)
</div>

<div style="height:50vh;"></div>

<div class="item" data-aos="fade-up" data-aos-delay="100" data-aos-duration	="0">
フェードイン<br/>(下から上へ)
</div>


<!-- ############ javascript  ############ -->
<script type="text/javascript">
window.onload = function () {
  AOS.init();
};
</script>
<!-- ############ /javascript  ############ -->


<!-- ############  style  ############ -->
<style>


.item {
  width: 40%;
  padding: 48px;
  background-color: #f2f2f2;
  color: #999;
  font-weight: bold;
  margin-bottom: 200px;
  font-size: 24px;
  text-align: center;
}

</style>
<!-- ############  /style  ############ -->


</body>
</html>

公式サイト

公式サイトはこちらになります。
https://michalsnik.github.io/aos/

導入方法

CDNの方式でも可能なので、以下のコードをかけばOKです。

HTML
  <link rel="stylesheet" href="https://cdn.rawgit.com/michalsnik/aos/2.1.1/dist/aos.css">
  <script src="https://cdn.rawgit.com/michalsnik/aos/2.1.1/dist/aos.js"></script>

CDNは困るという方は、以下にアクセスし、右上のCodeをクリックし、ライブラリをダウンロードし、ソースに読み込ませましょう。
https://github.com/michalsnik/aos

画像はイメージです


jQueryのライブラリは不要です!導入のハードルがグンと下がりますね!

あとはサンプルソースのbody部分を貼り付ければ、完成です。

使い方・解説

1、HTMLを作成

HTML
<div class="item" data-aos="fade-right" >
fade-right<small>(左から右へ出現)</small>
</div>

アニメーションをつけたい要素に対して「data-aos」の属性を付けることでアニメーションが実行されます。上記の例でいうと「data-aos=”fade-right”」ですので、右からフェードインするアニメーションが設定されます。

アニメーションの種類だけでなく、ほかにもアニメーションの速度を変えたり、移動距離を変えたり、開始タイミングを遅くしたり、たくさんのオプションがあります。(後述)

2、JavaScriptを作成

JavaScript
window.onload = function () {
  AOS.init();
};

これだけです!「AOS.init();」を実行するとHTMLの各タグで設定した属性に沿った内容が発動します。

補足

オプションが色々あるので、ご紹介します。

オプション名
属性名
内容初期値
data-aos-offsetアニメーション実行までの距離設定120(px)
data-aos-duration
アニメーションの実行秒数400(ms)
data-aos-delayアニメーションを実行するまでのディレイ秒数0(ms)
data-aos-anchor指定の要素までスクロールした際にアニメーションを実行させる設定なし
data-aos-anchor-placement要素のどの位置までスクロールしたらアニメーションを発火させるかの設定top-bottom

data-aos-once
アニメーションの実施を1回のみにするかどうかfalse
オプション

例えば、オプションを指定するとしたら以下のようなイメージですね。

<div data-aos="fade-right" data-aos-offset="120" data-aos-duration
="400" data-aos-delay="100" >

オプションはJavaScriptで実施するのではなく、HTMLで調整する感じなので直感的にどの要素にオプションをつけてるのかがわかりやすいですね。


よかったら、SNSでシェアして頂けると嬉しいです!
今後の励みにもなりますので、よろしくお願いします!