このページの本文へ

  • twitterでつぶやく
  • はてなブックマークに登録
  • del.icio.usに登録
  • livedoorクリップに登録
  • Buzzurlに登録
  • StumbleUponに登録
  • Google Bookmarksに登録
  • Facebookでシェア
  • Yahoo!ブックマークに登録
  • お気に入りに登録
  • 本文印刷

Web制作の現場で使えるjQuery UIデザイン入門 ― 第13回

jQueryで作る画像ギャラリーのチュートリアル

2009年09月30日 17時27分更新

文● 西畑一馬/to-R


アニメーションエフェクトで画像を滑らかに切り替える

 先ほど作成した画像ギャラリーは、サムネイル画像をクリックするといきなりメイン画像が切り換わるものでした。このままだと少し味気ないので、画像をアニメーションエフェクト付きで滑らかに切り替えるように変更しましょう。

 変更後のスクリプトは以下のようになります。CSSも合わせて1か所だけ変更しています(以下には変更部分のみ示します)。

サンプル02(スクリプト部分)


$(function(){
    $("#navi a").click(function(){
        $("#main img").before("<img src='"+$(this).attr("href")+"' alt=''>");
        $("#main img:last").fadeOut("fast",function(){
            $(this).remove()
        });
        return false;
    })
})


サンプル02(CSSの変更部分)


#main img{
    position:absolute;
    border:3px solid white;
}


 変更後のスクリプトでは、サムネイルがクリックされるとbefore()でメイン画像(#main img)の前に新たなimg要素を挿入します(関連記事)。挿入するimg要素のsrc属性には、クリックされたa要素のhref属性から読み出した値(クリックされたサムネイルに対応するメイン画像)を設定します。

 #main内のimg要素は、追加したCSSで position:absolute を設定しているので、もともと表示されていたメイン画像と後からスクリプトで追加した画像はぴったり重なった状態になります。

メイン画像とクリックされた画像が重なって表示される
もともと表示されていたメイン画像(手前)とスクリプトで追加した画像(奥)が重なって表示される(実際には同じ位置にぴったり重なる)

 次にfadeOut()を使って(関連記事)、もともと表示されているメイン画像を少しずつ非表示にしていきます。手前側のメイン画像が非表示になることで、奥にあった新しい画像が出現する仕組みです。div#main内には、もとのメイン画像と先ほど追加した画像しかありませんので、セレクターで#main img:lastと指定すれば、もとのメイン画像を選択できます。

もともと表示されていたメイン画像がフェードアウトし、スクリプトで追加した画像が出現する

 フェードアウトが完了しても、もとのimg要素はdisplayプロパティがnoneになって見えなくなっただけでHTML要素としては存在していますので、クリックを繰り返すとimg要素が次々と増えてしまいます。そこで、コールバック関数内でremove()を使い(関連記事)、フェードアウトが終わったらimg要素を完全に削除するように設定します。

 以上で、アニメーションエフェクト付きの画像ギャラリーが完成しました。


サンプル02(実行結果)

サンプル02
サンプル02
サンプル02の実行画面。サムネイルをクリックするとメイン画像がアニメーションエフェクト付きで徐々に切り換わる

この連載の記事

ASCII.jp会員サービス 週刊Web Professional登録

Webディレクター江口明日香が行く

みんなが買ってる最新アイテムはコレだ!

VOCALOID3 スターターIA ARIA ON THE PLANETES

VOCALOID3 スターターIA ARIA ON THE PLANETES

ヤマハ

17,745円〜

24人が購入

Google上位表示 64の法則 (WEB PROFESSIONAL)

Google上位表示 64の法則 (WEB PROFESSIONAL)

アスキー・メディアワークス

2,499円〜

72人が購入

標準HTML5タグリファレンス (WEB PROFESSIONAL)

標準HTML5タグリファレンス (WEB PROFESSIONAL)

アスキー・メディアワークス

2,205円〜

59人が購入

Speck MacBook Air 13型 See Thru - Clear SPK-MBA13-SEE-CLR

Speck MacBook Air 13型 See Thru - Clear SPK-MBA13-SEE-CLR

スペックコンピュータ

4,262円〜

23人が購入

jQuery Mobile スマートフォンサイト デザイン入門 (WEB PROFESSIONAL)

jQuery Mobile スマートフォンサイト デザイン入門 (WEB PROFESSIONAL)

アスキー・メディアワークス

2,499円〜

40人が購入

メモリーカード 32GB (PCH-Z321J)

メモリーカード 32GB (PCH-Z321J)

ソニー・コンピュータエンタテインメント

7,772円〜

9人が購入

iPhone 4S/4 防指紋性・高光沢機能性フィルム PRO GUARD AF for iPhone 4S/4 / PGAF-IPH4

iPhone 4S/4 防指紋性・高光沢機能性フィルム PRO GUARD AF for iPhone 4S/4 / PGAF-IPH4

マイクロソリューション Micro Solution Inc.

61人が購入

Amazon.co.jp