2009年11月20日

jQueryのアニメーションslideUp Down 他

人気ブログランキングにほんブログ村 IT技術ブログへ

jQueryでアニメーションの付いた画像の表示非表示が出来る命令の紹介その2。今回は縦にアニメーションする。

slideDown()

セレクタで指定したブロック要素をdisplay:noneからblockへ切り替える。その際のアニメーションは上から下。()内はミリ秒またはslow,norma,fastを指定できる。
コールバック関数も指定できる。

slideUp()

slideDown()の逆でdisplay:blockからnoneへ切り替える命令。アニメーションは下から上。他はslideDown()と同じ。

slideToggle()

slideDown()とslideUp()を交互に行う命令。他はshow()と同じ。

スクリプトを書いている途中で気が付いたが、アニメーションさせる要素のwidthが指定されていないと期待する挙動が出ない。

今回のslideUp()、slideDown()、slideToggle()は、アニメーションさせるimg要素にwidthが指定されていなかった場合、前回のshow()、hide()と同じ左上から右下(左下から右上)のアニメーションで表示・非表示された。

ASCII.jp:jQueryでAjaxを利用する基本チュートリアル|Web制作の現場で使えるjQuery UIデザイン入門を参考に、画像の表示・非表示を試してみました。

slideUpDownボタンで画像を縦に1枚ずつスライドさせながら表示・非表示させています。その順番はslideUp()とslideDown()をif文で場合分しけています。表示の時は茶→赤→黒→青で非表示は逆の青→黒→赤→茶です。

slideToggleボタンは上記と同じ動きをしますが、表示・非表示の順番はいずれも青→黒→赤→茶です。これはslideToggle()ではif文を使わない(使えない)からです。ただその分スクリプトはとてもスッキリします。



コードは以下の通り。
<script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
<script type="text/javascript">
$(function(){
$("#slideUDT button#UpDown").click(function(){
if ($("#slideUDT img").css("display")=="block"){
$('#slideUDT img[src="//img01.naganoblog.jp/usr/webdesign/k_01.png"]:not(:animated)').slideUp(250,function(){
$('#slideUDT img[src="//img01.naganoblog.jp/usr/webdesign/k_02.png"]:not(:animated)').slideUp(250,function(){
$('#slideUDT img[src="//img01.naganoblog.jp/usr/webdesign/k_03.png"]:not(:animated)').slideUp(250,function(){
$('#slideUDT img[src="//img01.naganoblog.jp/usr/webdesign/k_04.png"]:not(:animated)').slideUp(250);
});
});
});
}else{
$('#slideUDT img[src="//img01.naganoblog.jp/usr/webdesign/k_04.png"]:not(:animated)').slideDown(250,function(){
$('#slideUDT img[src="//img01.naganoblog.jp/usr/webdesign/k_03.png"]:not(:animated)').slideDown(250,function(){
$('#slideUDT img[src="//img01.naganoblog.jp/usr/webdesign/k_02.png"]:not(:animated)').slideDown(250,function(){
$('#slideUDT img[src="//img01.naganoblog.jp/usr/webdesign/k_01.png"]:not(:animated)').slideDown(250);
});
});
});
};
});
});
$(function(){
$("#slideUDT button#Toggle").click(function(){
$('#slideUDT img[src="//img01.naganoblog.jp/usr/webdesign/k_01.png"]:not(:animated)').slideToggle(250,function(){
$('#slideUDT img[src="//img01.naganoblog.jp/usr/webdesign/k_02.png"]:not(:animated)').slideToggle(250,function(){
$('#slideUDT img[src="//img01.naganoblog.jp/usr/webdesign/k_03.png"]:not(:animated)').slideToggle(250,function(){
$('#slideUDT img[src="//img01.naganoblog.jp/usr/webdesign/k_04.png"]:not(:animated)').slideToggle(250);
});
});
});
});
})
</script>
<div id="slideUDT">
<p><button id="UpDown">slideUpDown</button><button id="Toggle">slideToggle</button></p>
<img src="//img01.naganoblog.jp/usr/webdesign/k_04.png" width="90px" height="90px" style="display:block" />
<img src="//img01.naganoblog.jp/usr/webdesign/k_03.png" width="90px" height="90px" style="display:block" />
<img src="//img01.naganoblog.jp/usr/webdesign/k_02.png" width="90px" height="90px" style="display:block" />
<img src="//img01.naganoblog.jp/usr/webdesign/k_01.png" width="90px" height="90px" style="display:block" />
</div>


同じカテゴリー(jQuery)の記事画像
jQueryでIE6を透過PNGに対応させる
jQueryで作るロールオーバー
jQueryで作るオリジナルツールチップ
jQueryでのアニメーション animate()
jQueryのアニメーションfadeIn Out To
jQueryのアニメーションshow hide toggle
同じカテゴリー(jQuery)の記事
 jQueryでIE6を透過PNGに対応させる (2009-12-16 20:34)
 jQueryで作るロールオーバー (2009-12-12 18:00)
 jQueryで作るオリジナルツールチップ (2009-12-11 23:44)
 jQueryで作るタブパネル (2009-12-10 18:00)
 jQueryで作るアコーディオンパネル (2009-12-09 18:00)
 jQueryでイメージギャラリーを作成。 (2009-11-29 17:58)

Posted by ヒダカ at 18:44│Comments(0)jQuery
上の画像に書かれている文字を入力して下さい
 
<ご注意>
書き込まれた内容は公開され、ブログの持ち主だけが削除できます。