jQueryを使ったシンプルなスライドショーの1回目はフェードイン・フェードアウトのみ(全3回)
- 2014/10/21
先週、授業中にやったjQueryを使ったシンプルなスライドショーです。
スライドショーは3週に分けて少しずつバーションアップしていきます。
まずは動作サンプルから
実際は、もう少しゆっくり切り替えますが、サンプルなので1秒で切り替えています。
スライドショーの動作イメージ
スライドショーの動作イメージは、次のような感じです。
あらかじめスライドに使用する画像を用意して、jQueryを使って表示・非表示を切り替えていきます。
実際に作ってみよう!
まずはHTMLです。
<div id="wrap"> <p id="pic1"><img src="jQuery.png" alt="jQuery"></p> <p id="pic2"><img src="HTML5.gif" alt="HTML5"></p> <p id="pic3"><img src="CSS3.png" alt="CSS3" ></p> </div>
実際は色々な方法があり、その方法によってマークアップも変わってきます。今回はp要素の中に画像を一つずつ入れる方法でマークアップしました。
このp要素を操作して表示・非表示を切り替えるために、idで名前を付けています。jQueryで操作する場合は、class名でも構いません。連番で名前を付けます。
次はCSSです。
<style type="text/css"> #wrap{ width: 200px; height: 200px; margin: 0 auto; } #wrap p{ width: 200px; position: absolute; } #pic2,#pic3{ opacity: 0; } </style>
ポイントは9行目の「position: absolute;」です。absoluteは絶対位置指定ですが、positionにabsoluteを指定して、topやleftにより座標指定しない場合は、親要素の左上が起点に配置されます。今回の場合は、div#wrapの左上を起点にすべての画像が重なります。なお、HTMLで後に記述している要素が上になります。(重なりの順序は、z-indexで変更可能)
2番目と3番目の画像を「opacity:0」で透明にします。そうすることで1番目の画像だけが表示されます。
最後にスクリプトです。
1行目は、jQuery本体の読み込みです。本家jQueryからダウンロードして使う場合は、scriptタグのsrc属性を変更してください。
変数noは、表示したり非表示にしたりする画像を指定するための変数です。変数maxはスライドに使用する画像の最大枚数を指定します。実際のサイトで使用する場合は、要素数をJavaScriptで取得して変数に代入しますが、今回は分かりやすさを優先して定数を代入しています。
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script> <script type="text/javascript"> $(function(){ var no=1; // 操作対象の画像番号 var max=3; // 画像の最大数 setInterval(function(){ //変数noの値を元に現在表示されている画像を非表示にする $("#pic"+no).animate({ "opacity":0 }); //変数の値を+1して次の画像に切り替える no++; //変数noがmaxを越えていれば1に戻す if(no > max){ no=1; } //変数noの値にを使用し画像を表示する $("#pic"+no).animate({ "opacity":1 }); },1000); // ← の「1000」が実行の間隔です。 }); </script>
一定間隔で処理を繰り返す setInterval()
setInterval( 処理 , 間隔 );
「処理」では、関数を呼び出しますが、無名関数の使用が多いように感じます。
「処理」の部分を無形関数のfunction(){} とし、
function(){
ここに処理を記述します。
}
「間隔」は、「1000」で1秒です。
5秒間隔で切り替えるには、「5000」にします。
1回目は、ここまで!
その他のTechWebTipsはこちら
熊本でWebを学ぶなら
熊本電子ビジネス専門学校のITビジネス科で!