JavaScript

aos.jsを使って縦長ページスクロールアニメーションを演出する方法【Animate On Scroll Library】

aos.js(Animate On Scroll Library)を使って縦長ページのスクロールアニメーションを演出・実装する方法をご紹介します。

縦長ページスクロールアニメーションを演出するCSS記述

※aos.cssファイルを読み込みます。グリッドボックスエリア(.aos-all、.aos-item、.aos-item__inner)のCSS記述です。必要に応じて変更して下さい。

<link rel="stylesheet" href="aos.css" />
<style type="text/css">
body{
  text-align: center;
}
h1{
  text-align: center;
  font-size: 22px;
  padding: 20px 0 0 0;
  line-height: 2em;
}

*,
*:before,
*:after {
  box-sizing: border-box;
}
.aos-all {
  width: 1000px;
  max-width: 98%;
  margin: 10vh auto 0 auto;
}
.aos-item {
  display: inline-block;
  float: left;
  width: 33.3333%;
  height: 300px;
  padding: 20px;
}
.aos-item__inner {
  position: relative;
  width: 100%;
  height: 100%;
  float: left;
  background: #333333;
  line-height: 260px;
  text-align: center;
  color: #fff;
}
@media screen and (max-width: 800px) {
  .aos-item {
    width: 50%;
  }
}
</style>

縦長ページスクロールアニメーションを演出するHTML記述

※スクロール時にアニメーション演出で表示するグリッドボックスエリア(class=”aos-item”)を複数用意します。
各ボックスエリアにdata-aos=”アニメーションパターン”を記述します。
・fade-up(フェードアップ)
・fade-down(フェードダウン)
・fade-right(右にフェード)
・fade-left(左にフェード)
・fade-up-right(右にフェードアップ)
・fade-up-left(左にフェードアップ)
等、その他にも色々なアニメーション演出パターンで表示できます。

<h1>aos.jsを使って、縦長ページスクロールアニメーションを実装してます。<br>下にスクロールして見てください。</h1>

    <div id="transcroller-body" class="aos-all">
      <div class="aos-item" data-aos="fade-up">
        <div class="aos-item__inner"><h3>1</h3></div>
      </div>
      <div class="aos-item" data-aos="fade-down">
        <div class="aos-item__inner"><h3>2</h3></div>
      </div>
      <div class="aos-item" data-aos="zoom-out-down">
        <div class="aos-item__inner"><h3>3</h3></div>
      </div>
      <div class="aos-item" data-aos="flip-down">
        <div class="aos-item__inner"><h3>4</h3></div>
      </div>
      <div class="aos-item" data-aos="flip-up">
        <div class="aos-item__inner"><h3>5</h3></div>
      </div>
      <div class="aos-item" data-aos="fade-down">
        <div class="aos-item__inner"><h3>6</h3></div>
      </div>
      <div class="aos-item" data-aos="fade-in">
        <div class="aos-item__inner"><h3>7</h3></div>
      </div>
      <div class="aos-item" data-aos="fade-down">
        <div class="aos-item__inner"><h3>8</h3></div>
      </div>
      <div class="aos-item" data-aos="fade-in">
        <div class="aos-item__inner"><h3>9</h3></div>
      </div>
      <div class="aos-item" data-aos="fade-down">
        <div class="aos-item__inner"><h3>10</h3></div>
      </div>
      <div class="aos-item" data-aos="fade-up">
        <div class="aos-item__inner"><h3>11</h3></div>
      </div>
      <div class="aos-item" data-aos="fade-down">
        <div class="aos-item__inner"><h3>12</h3></div>
      </div>
      <div class="aos-item" data-aos="fade-in">
        <div class="aos-item__inner"><h3>13</h3></div>
      </div>
      <div class="aos-item" data-aos="fade-up">
        <div class="aos-item__inner"><h3>14</h3></div>
      </div>
      <div class="aos-item" data-aos="fade-in">
        <div class="aos-item__inner"><h3>15</h3></div>
      </div>
      <div class="aos-item" data-aos="fade-up">
        <div class="aos-item__inner"><h3>16</h3></div>
      </div>
      <div class="aos-item" data-aos="fade-down">
        <div class="aos-item__inner"><h3>17</h3></div>
      </div>
      <div class="aos-item" data-aos="fade-up">
        <div class="aos-item__inner"><h3>18</h3></div>
      </div>
      <div class="aos-item" data-aos="zoom-out">
        <div class="aos-item__inner"><h3>19</h3></div>
      </div>
      <div class="aos-item" data-aos="fade-up">
        <div class="aos-item__inner"><h3>20</h3></div>
      </div>
      <div class="aos-item" data-aos="zoom-out">
        <div class="aos-item__inner"><h3>21</h3></div>
      </div>
      <div class="aos-item" data-aos="fade-in">
        <div class="aos-item__inner"><h3>22</h3></div>
      </div>
      <div class="aos-item" data-aos="zoom-out-up">
        <div class="aos-item__inner"><h3>23</h3></div>
      </div>
      <div class="aos-item" data-aos="zoom-out-down">
        <div class="aos-item__inner"><h3>24</h3></div>
      </div>
      <div class="aos-item" data-aos="fade-in">
        <div class="aos-item__inner"><h3>25</h3></div>
      </div>
      <div class="aos-item" data-aos="fade-in">
        <div class="aos-item__inner"><h3>26</h3></div>
      </div>
      <div class="aos-item" data-aos="fade-in">
        <div class="aos-item__inner"><h3>27</h3></div>
      </div>
      <div class="aos-item" data-aos="fade-in">
        <div class="aos-item__inner"><h3>28</h3></div>
      </div>
      <div class="aos-item" data-aos="fade-in">
        <div class="aos-item__inner"><h3>29</h3></div>
      </div>
      <div class="aos-item" data-aos="fade-in">
        <div class="aos-item__inner"><h3>30</h3></div>
      </div>
      <div class="aos-item" data-aos="fade-in">
        <div class="aos-item__inner"><h3>31</h3></div>
      </div>
      <div class="aos-item" data-aos="fade-in">
        <div class="aos-item__inner"><h3>32</h3></div>
      </div>
      <div class="aos-item" data-aos="fade-in">
        <div class="aos-item__inner"><h3>33</h3></div>
      </div>
    </div>

aos.jsを使って、縦長ページのスクロールアニメーションを演出・実装するJavaScriptの記述

※aos.jsファイルを読み込みます。AOS.init({オプション})と記述し、オプションではアニメーションのeasing等を設定できます。

<script src="aos.js"></script>
<script>
  AOS.init({
    easing: 'ease-in-out-sine'
  });
</script>

aos.jsを使って、縦長ページスクロールアニメーションを実装するデモページ

aos.jsを使って、縦長ページスクロールアニメーションを実装するデモページ

ソース元:AOS – Animate on scroll library

以下がソース元です。
AOS – Animate on scroll library

 
※流用される場合は自己責任でお願いします。
 デモページheadタグ内のGoogleアナリティクスタグは流用しないで下さい。