あなたのキモチ つなげるカタチ

TOP > jQuery > 【jQuery】リストを指定した順番からフェードインさせるテクニック/Specified order fadeIn

【jQuery】リストを指定した順番からフェードインさせるテクニック/Specified order fadeIn

スポンサーリンク

この記事は2016年12月14日に公開した記事です。

現在とは状況が違う場合がありますのでご注意ください。

コーディングテクニックの実装内容

jQueryで動きをつける際の定番アニメーションとして「リストが順番に表示される」というものがあります。皆様もこれまでにWEBページで1度は見かけたことがあるのではないでしょうか?

今回、実務で求められたのは「リストのオブジェクトを指定した順番から表示させてほしい」というものでした。あまり見かけない動きですが、よくあるパターンで使用しているjQueryの記述にJavaScriptの配列を組み合わせて対応しました。

実装所要時間:10分程度
難易度:初心者コーダーでも実装可能

HTML,JavaScript,CSSの記述内容

実装に必要な記述はこれだけです。

<ul class="list">
  <li class="list-01">1</li>
  <li class="list-08">8</li>
  <li class="list-02">2</li>
  <li class="list-04">4</li>
  <li class="list-03">3</li>
  <li class="list-05">5</li>
  <li class="list-07">7</li>
  <li class="list-06">6</li>
</ul>
$(function() {
    var fade = ['.list-01','.list-02','.list-03','.list-04','.list-05','.list-06','.list-07','.list-08'];

    $.each(fade, function(i, val) {
        $(val).delay(180 * i).animate({opacity:'1'},400);
    });
});
.list {
  overflow: hidden;
  width: 800px;
  margin: 0 auto;
}

.list li {
  float: left;
  width: 200px;
  height: 200px;
  padding: 100px 0 0;
  line-height: 0;
  text-align: center;
  color: #fff;
  background: #000;
  opacity: 0;
}

liタグへ任意の順番でクラスを付与しています。
とてもシンプルな仕上がりとなりました。

実装のポイント

  • 1. 配列に.list-01~.list-08を格納する
  • 2. liタグへ表示した順で.list-01~.list-08までクラスを付与する
  • 3. $.eachで繰り返し処理を行う

まとめ

最近、実務でよく思うことがあります。
それは、基本的な動きはjQueryで対応できても「ひと手間加えた動きをつけたい」との要望がきた場合、「JavaScriptで改修する技術がないとハマってしまう」ということです。

jQueryプラグインは便利ですが、プラグインに登録されていない動きを求められた時の対策としてJavaScriptの基礎ををしっかり学ぶ必要があると感じます。

スポンサーリンク