Header Menu

div要素をクロスフェード表示するJavaScript

結構前に公開されているので、すでに使っている人もいるかと思いますが、最近、個人的な用途で使わせていただいたので紹介。

Brand Spanking New で公開されている、「Javascript / CSS Crossfader」 は、JavaScript ひとつで簡単に、任意の div 要素 (じゃなくてもいいんですが) をクロスフェード表示で切り替えてくれるスクリプト。スクリプト自体が軽いのと、設定も簡単なので、ちょっとした画像の切り替えなんかに重宝しそう。

デモがこちらで公開されています。

必要なのは JavaScript ファイル 1つのみ。ダウンロードした JavaScript ファイルをサーバに上げたら、(X)HTML ファイルに読み込みます。

<script type="text/javascript" src="/js/bsn.Crossfader.js"></script>

切り替える (X)HTML ソースは下記のように。

<div id="cf1">
 <p>first content</p>
</div>
<div id="cf2">
 <p>second content</p>
</div>
<div id="cf3">
 <p>third content</p>
</div>

必ずやらなければいけないのは、id 属性を任意で付けるってことだけ。この id 属性値が切り替え設定時に必要なので、切り替え順などで適当に名前付けておきます。

<div id="value">
 ・・・
</div>

最後に、

var cf = new Crossfader( new Array('cf1','cf2','cf3'), 500, 2000 );

という形で、切り替えの順番とタイミングを記述してあげます。

new Array('cf1','cf2','cf3'),

この部分が、先ほど付けた id 属性値になります。左から記述した順に表示されます。

500, 2000

最後の数字は、各 div 要素の切り替わるタイミングです。この例だと、

cf1 → cf2 : 500ms
cf2 → cf3 : 2000ms

2/18追記
すいません。上記の説明は間違いです。正しくは下記です。(rytich さんコメント感謝)

The constructor takes three variables: an array containing the ids of the divs to be faded, the fade time (in milliseconds), and the delay between fades (also in milliseconds).

  • フェードエフェクトの時間 : 500ms
  • 各 div 要素の表示時間 : 2000ms

この記述は下記のように、(X)HTML ファイルに直接記述でもいいですし、

<script type="text/javascript">
 var cf = new Crossfader( new Array('cf1','cf2','cf3'), 500, 2000 );
</script>

外部ファイルに記述して、下記のように読み込んでも OK です。

<script type="text/javascript" src="/js/setting.js"></script>

あとは、CSS で見た目を整えれば完成。

Add to Bookmarks
  • Hatenaブックマークに追加
  • del.icio.usに追加
  • POOKMARK Airlinesへ追加
  • livedoorクリップへ追加
  • ニフティクリップへ追加
  • Buzzurlにブックマーク
  • newsingへ投稿
  • Choixへ追加
  • Furlへ追加
  • Blinklistへ追加
  • Redditへ追加
Advertisement

comment & trackback

TRACKBACK URL : http://hyper-text.org/cms/mt-tb.cgi/334

trackback to this entry

... 0 trackback

comments

rytich, February 18, 2007 - 12:44.

いつも参考にさせてもらってます
ありがとうございます。

今回のJavascriptもさっそく使わせてもらったのですがソースを見たところCrossfaderの数字は常に2つで最初の数字が切り替えフェードの時間で二つ目がひとつの要素を表示している時間のようです。

var cf = new Crossfader( new Array('cf1','cf2','cf3'), 500, 2000 );
だとcf1~cf3をそれぞれ2000ms表示して、切り替えのクロスフェード時間が500msみたいな。たぶん。

これからもナイスデザインおねがいしま~す

WWW WATCH, February 18, 2007 - 12:56.

rytich さんコメントありがとうございます。

おっしゃるとおりです。ご指摘感謝です。元のページにきちんと説明が書かれているのですが、間違って解釈していました。

修正するためにエントリーを見直したら、誤字とか結構あるし、、なんか寝ぼけてたみたいです。お恥ずかしい。

post your comment

comment form

* All Fields Required.

RSS Feed
  • Add to Google Reader
  • Add to My Yahoo
  • Add to netvibes
  • Subscribe in NewsGator Online
  • Subscribe in livedoor Reader
  • Subscribe in Hatena RSS Reader
  • Subscribe in Bloglines
  • Feed Count by FeedBurner