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

TOP > jQuery > 【jQuery】任意の順番からフェードインするスクリプト

【jQuery】任意の順番からフェードインするスクリプト

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

よくあるパターンの動き

よくあるパターンの仕組みとしてはopacity:0;で透明にしておいた「li」タグを
.each().delay()を組み合わせて先頭のliタグから順番に遅らせながらopacity:1;に変えていくやり方です。

参考ページ
http://www.dataplan.jp/blog/jquery/203
http://www.webopixel.net/javascript/714.html

指定した順番から表示する動き

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

$(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-01~.list-08のクラスを格納してliタグに任意の順番でにクラスを付与しています。
とてもシンプルな仕上がりとなりました。

まとめ

最近、実務でよく思うことがあります。
それは、基本的な動きはjQueryで対応できても「ひと手間加えた動きをつけたい」との要望がきた場合、「JavaScriptで改修する技術ができないとハマってしまう」ということです。
jQueryプラグインは便利ですが、プラグインに登録されていないような動きを求められた時の対策としてJavaScriptの基礎ををしっかり学ぶ必要があると感じます。