この記事は年以上前に書かれたもので、内容が古かったり、セキュリティ上の問題等の理由でリンクが解除されている可能性があります。
この手のは沢山出回っているので今更
っていう感じの話題ですけど、個人的
にはどのライブラリも利用しやすい
感じではなかったので簡単なコード
で出来るものを作ってみます。
最近、人気のスライダー系プラグイン、Nivo SliderがレスポンシブWebデザインに対応しました。
The Nivo Slider is Responsive!
これ以外にもググればプラグインは沢山出てきますので、選択肢は沢山ありますが、短いコードで済むに越した事は無いので試しに書いてみます。
Sample


jQuery
$('img:gt(0)').hide();
setInterval(function() {
$('img:first-child').fadeOut(0).next('img').fadeIn().end().appendTo('div');
}, 4000);
コードは特別な事はしていません。最初の画像以外非表示にしておいて、あとは順番に画像の表示、非表示を繰り返すだけのものです。エフェクト何も考えてないのでちょっとチカチカしますね。ごめんなさい。
CSS
div {
position:relative;
width: 100%;
max-width:450px;
padding:0;
margin:0 auto;
}
div img {
position: relative;
top: 0;
left: 0;
width: 100%;
height: auto;
}
CSSもMedia Queriesは使用しません。画像を包括するボックスのサイズをFluidレイアウトと同じ要領で%指定。Youtube等をレシポンシブWebデザインに対応させるのと同じ方法ですね。記事タイトルでは、jQueryでレスポンシブWebデザインに対応、みたいに思えてしまいますが、実際はCSSだけで対応します。
ただし、IE6はmax-widthが使えないのでこのままでは全画面表示になってしまいます。IE6でも表示を崩さないようにするにはハックが必要になりそうです。
HTML
<div>
<img src="foo.jpg">
<img src="bar.jpg">
<img src="hoge.jpg">
<img src="huga.jpg">
</div>
HTMLもシンプルで済みます。
レスポンシブWebデザインにするという事は、スマートフォン等でも閲覧できる事を視野に入れている事が殆どですが、それならやはり表示スピードが気になります。それに、スマートフォン用のスライドショーにそんなに高機能な物は不要に感じます。Nivo SliderがレシポンシブWebデザインに対応しましたが、やはり重いですね。で、ふとコード量だけでも抑えたいな、と思って簡単なものから書いてみました。あとは必要に応じてコードを足していけば最小限に抑えられるんじゃないでしょうか。配布されているライブラリよりは軽量なコードで済ませられそうです。

