このページの本文へ

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

古籏一浩のJavaScriptラボ ― 第17回

Yahoo! UI Library 3版スライドショーの作り方

2009年10月27日 15時52分更新

文● 古籏一浩


スライド表示の初期設定

 HTMLが準備できたらスクリプトを作成します。まず、スライド表示に必要な変数「photoList」「counter」「fadeTime」を定義します。「photoList」は表示する画像要素を格納する配列です。「counter」は表示中のスライドの番号で、photoList配列の要素番号として使います。fadeTimeは画像がフェードする時間です。ここでは「2.0」、つまり2秒間でフェードするように設定しています。


【変数の定義】


var photoList = [];
var counter = 0;
var fadeTime = 2.0;   // フェード時間


 次に、画像の表示位置を設定します。スライドショーは、スライド表示する画像(yui3-slideshowクラスを設定したimg要素)をすべて同じ位置に重ね合わせ、表示/非表示を切り替えていく仕組みです。そこで、HTML内の最初の画像のXY座標を取得し、他の画像に同じ座標を設定します。同じクラス名を持つエレメントから最初の1つを取り出すのは、one()メソッドを使います。画像のXY座標はgetX()/getY()メソッドで読み出して、いったん「posX」「posY」という名前の変数に入れておきます。


【座標値を読み出し】


var firstPhoto = Y.one('.yui3-slideshow');
var posX = firstPhoto.getX();
var posY = firstPhoto.getY();


 続いて、読み出した座標値を、all()とeach()を使って対象となるすべての画像に設定します。座標はsetX()/setY()を使い、座標値をそれぞれの引数に指定すれば設定できます。ここでは、先ほど読み出した座標値を入れてあるposXとposYを指定します。また、座標を設定するついでに、読み出したエレメントをphotoList配列に格納していきます。


Y.all('.yui3-slideshow').each(function(ele){
    ele.setX(posX);
    ele.setY(posY);
    photoList.push(ele);
});


 初期設定が終わったら最初の画像をフェードインさせましょう。フェードインの処理は、前回の記事で説明した不透明度を変化させる方法(関連記事)と同じです。nodeにはphotoList配列の最初の要素を指定し、durationには変数「fadeTime」を指定します。これで最初の画像がフェードインで表示されます。


(new Y.Anim({
    node: photoList[0],
    duration : fadeTime,
    to   : { opacity : 1.0 }
})).run();


この連載の記事

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円〜

71人が購入

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

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

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

2,205円〜

60人が購入

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円〜

39人が購入

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

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

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

7,772円〜

9人が購入

Windows 7 Home Premium 通常版 Service Pack 1 適用済み

Windows 7 Home Premium 通常版 Service Pack 1 適用済み

マイクロソフト

20,271円〜

4人が購入

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.

59人が購入

Amazon.co.jp