2024年06月14日
jquery:slideToggle()
このメソッドの説明
slideToggle() はjQueryメソッドです。
要素を上から下に開き、下から上に閉じます(メニュの開閉によく使われます)
メモ
slideToggle()は、toggle()の blind効果 と同じ動きになります。
メソッド
セレクタ.slideToggle( duration , complete )
パラメータ
duration (整数 | 指定パラメータ)(省略可)
開閉の実行時間
初期値:400ms
数値で指定する以外に下記の文字列でも可
・'slow' :600ms
・'normal':400ms
・'fast' :200ms
complete (関数)(省略可)
開閉の終了後に実行する関数
事例
①パラメータを何も指定しないスライドトグル
下記のボタンを挿入して下さい。開閉時間は400msです.
エフェクトエリア
ここが表示/非表示します
ここが表示/非表示します
上記のプログラムは下記から構成されています。
<p><button class='toggle01' style='padding:5px 10px;background:cyan'>スライドトグルによる開閉</button></p>
<div class='toggle_target01' style='width:200px; height:100px;background:pink;'>
<div style=' padding:10px;'>エフェクトエリア<br>ここが表示/非表示します</div>
</div>
<script>
$(function(){
$('.toggle01').parent().next().css('display','none');
$('.toggle01').click(function(){
$(this).parent().next().slideToggle();
});
});
</script>
■1~4行目:HTML
■ボタンがクリックされたら、ボタンの親の次の要素をスライドトグルで開閉しています。
②duration と complete を指定したスライドトグル
下記のボタンを挿入して下さい。
トグル後に、ボタンのテキストを変更します。
エフェクトエリア
ここが表示/非表示します
ここが表示/非表示します
上記のプログラムは下記から構成されています。
<p><button class='toggle02' style='padding:5px 10px;background:cyan'>開く▼</button></P>
<div class='toggle_target02' style='width:200px; height:100px;background:pink;'>
<div style=' padding:10px;'>エフェクトエリア<br>ここが表示/非表示します</div>
</div>
<script>
$(function(){
$('.toggle_target02').css('display','none');
$('.toggle02').click(function(){
$('.toggle_target02').slideToggle(1000,function(){
var flg = $('.toggle_target02').css('display');
if(flg == 'block'){$('.toggle02').text('コンテンツを閉じる▲');}
else{$('.toggle02').text('開く▼');}
});
});
});
</script>
■9~13行目
実行時間を1秒にし、トグルが完了して時に関数を実行し、コンテンツの表示/非表示に合わせてボタンの文字を変更しています。