jQuery API の slideUp( duration, easing, callback ) は、指定した要素が表示されている場合、その要素を、duration に指定した速度で、easing に指定したイージング関数名の動作パターンのスライド・アップ・アニメーションで非表示にし、その後、callback に指定した関数を実行するメソッド。
記述方法
jQuery( セレクター ) . slideUp( 速度, イージング関数名, コールバック関数 );
「セレクター」の要素が表示されている場合、「セレクター」の要素を、「速度」に指定した速度で、「イージング関数名」に指定したイージング関数名の動作パターンのスライド・アップ・アニメーションで非表示にし、その後、「コールバック関数」に指定した関数を実行する。
「速度」は、ミリ秒単位の数字、もしくは、'slow'、'normal'、'fast' の文字列で指定できる。
「イージング関数名」は、'linear'、'swing' の文字列で指定できる。イージング関数は、加速度を加味したような動作パターン。jQuery にデフォルトで用意されているのは、linear と swing のシンプルな動作パターンだけだが、jQuery Easing Plugin などの jQuery プラグインを導入することで、使える動作パターンを増やすことができる。
実装例(サンプル)
slideUp( 2000, 'swing' ) / slideDown( 2000, 'swing' ) ボタンをクリックすると:
①
②
slideUp( 'fast', 'swing' ) / slideDown( 'fast', 'swing' ) ボタンをクリックすると:
①
②
実装例(サンプル)の動作について
- アニメーション動作パターンは、何れも、'swing'。
- 「 slideUp( 2000, 'swing' ) / slideDown( 2000, 'swing' ) 」ボタンをクリックすると、赤色のボックスを、2秒間のスライドアップのアニメーションで非表示にし、その後、青色のボックスを、2秒間のスライドアップのアニメーションで非表示にする。
- 「 slideUp( 2000, 'swing' ) / slideDown( 2000, 'swing' ) 」ボタンを再度クリックすると、「slideUp( 2000, 'swing' ) / slideDown( 2000, 'swing' ) ボタンをクリックすると: 」の下に青色のボックスを、2秒間のスライドダウンのアニメーションで表示し、その後、赤色のボックスを、2秒間のスライドダウンのアニメーションで表示する。
- 「 slideUp( 'fast', 'swing' ) / slideDown( 'fast', 'swing' ) 」ボタンをクリックすると、赤色のボックスを、速いスライドアップのアニメーションで非表示にし、その後、青色のボックスを、速いスライドアップのアニメーションで非表示にする。
- 「 slideUp( 'fast', 'swing' ) / slideDown( 'fast', 'swing' ) 」ボタンを再度クリックすると、「slideUp( 'fast', 'swing' ) / slideDown( 'fast', 'swing' ) ボタンをクリックすると: 」の下に青色のボックスを、速いスライドダウンのアニメーションで表示し、その後、赤色のボックスを、速いスライドダウンのアニメーションで表示する。
実装例(サンプル)のソースコード
JavaScript
<script>
<!--
jQuery( function() {
jQuery( '#jquery-api-slideUp' ) . click( function() {
if ( jQuery( '#jquery-api-slideUp-contents' ) . is( ':hidden' ) ) {
jQuery( '#jquery-api-slideUp-contents' ) . slideDown(
2000,
'swing',
function() {
jQuery( '#jquery-api-slideUp-contents-2' ) . slideDown( 2000, 'swing' );
}
);
} else {
jQuery( '#jquery-api-slideUp-contents-2' ) . slideUp(
2000,
'swing',
function() {
jQuery( '#jquery-api-slideUp-contents' ) . slideUp( 2000, 'swing' );
}
);
}
} );
jQuery( '#jquery-api-slideUp-fast' ) . click( function() {
if ( jQuery( '#jquery-api-slideUp-fast-contents' ) . is( ':hidden' ) ) {
jQuery( '#jquery-api-slideUp-fast-contents' ) . slideDown(
'fast',
'swing',
function() {
jQuery( '#jquery-api-slideUp-fast-contents-2' ) . slideDown( 'fast', 'swing' );
}
);
} else {
jQuery( '#jquery-api-slideUp-fast-contents-2' ) . slideUp(
'fast',
'swing',
function() {
jQuery( '#jquery-api-slideUp-fast-contents' ) . slideUp( 'fast', 'swing' );
}
);
}
} );
} );
// -->
</script>
<!--
jQuery( function() {
jQuery( '#jquery-api-slideUp' ) . click( function() {
if ( jQuery( '#jquery-api-slideUp-contents' ) . is( ':hidden' ) ) {
jQuery( '#jquery-api-slideUp-contents' ) . slideDown(
2000,
'swing',
function() {
jQuery( '#jquery-api-slideUp-contents-2' ) . slideDown( 2000, 'swing' );
}
);
} else {
jQuery( '#jquery-api-slideUp-contents-2' ) . slideUp(
2000,
'swing',
function() {
jQuery( '#jquery-api-slideUp-contents' ) . slideUp( 2000, 'swing' );
}
);
}
} );
jQuery( '#jquery-api-slideUp-fast' ) . click( function() {
if ( jQuery( '#jquery-api-slideUp-fast-contents' ) . is( ':hidden' ) ) {
jQuery( '#jquery-api-slideUp-fast-contents' ) . slideDown(
'fast',
'swing',
function() {
jQuery( '#jquery-api-slideUp-fast-contents-2' ) . slideDown( 'fast', 'swing' );
}
);
} else {
jQuery( '#jquery-api-slideUp-fast-contents-2' ) . slideUp(
'fast',
'swing',
function() {
jQuery( '#jquery-api-slideUp-fast-contents' ) . slideUp( 'fast', 'swing' );
}
);
}
} );
} );
// -->
</script>
CSS
<style>
<!--
#jquery-api-slideUp-contents,
#jquery-api-slideUp-contents-2,
#jquery-api-slideUp-fast-contents,
#jquery-api-slideUp-fast-contents-2 {
float: left;
padding: 10px;
width: 200px;
text-align: center;
color: white;
border: 1px solid gray;
border-radius: 10px;
}
#jquery-api-slideUp-contents,
#jquery-api-slideUp-fast-contents {
background-color: blue;
}
#jquery-api-slideUp-contents-2,
#jquery-api-slideUp-fast-contents-2 {
background-color: red;
}
-->
</style>
<!--
#jquery-api-slideUp-contents,
#jquery-api-slideUp-contents-2,
#jquery-api-slideUp-fast-contents,
#jquery-api-slideUp-fast-contents-2 {
float: left;
padding: 10px;
width: 200px;
text-align: center;
color: white;
border: 1px solid gray;
border-radius: 10px;
}
#jquery-api-slideUp-contents,
#jquery-api-slideUp-fast-contents {
background-color: blue;
}
#jquery-api-slideUp-contents-2,
#jquery-api-slideUp-fast-contents-2 {
background-color: red;
}
-->
</style>
HTML
<p><button id="jquery-api-slideUp">slideUp( 2000, 'swing' ) / slideDown( 2000, 'swing' )</button></p>
<p>slideUp( 2000, 'swing' ) / slideDown( 2000, 'swing' ) ボタンをクリックすると:</p>
<div id="jquery-api-slideUp-contents">
<p>①</p>
</div>
<div id="jquery-api-slideUp-contents-2">
<p>②</p>
</div>
<div style="clear:left;"></div>
<p><button id="jquery-api-slideUp-fast">slideUp( 'fast', 'swing' ) / slideDown( 'fast', 'swing' )</button></p>
<p>slideUp( 'fast', 'swing' ) / slideDown( 'fast', 'swing' ) ボタンをクリックすると:</p>
<div id="jquery-api-slideUp-fast-contents">
<p>①</p>
</div>
<div id="jquery-api-slideUp-fast-contents-2">
<p>②</p>
</div>
<div style="clear:left;"></div>
<p>slideUp( 2000, 'swing' ) / slideDown( 2000, 'swing' ) ボタンをクリックすると:</p>
<div id="jquery-api-slideUp-contents">
<p>①</p>
</div>
<div id="jquery-api-slideUp-contents-2">
<p>②</p>
</div>
<div style="clear:left;"></div>
<p><button id="jquery-api-slideUp-fast">slideUp( 'fast', 'swing' ) / slideDown( 'fast', 'swing' )</button></p>
<p>slideUp( 'fast', 'swing' ) / slideDown( 'fast', 'swing' ) ボタンをクリックすると:</p>
<div id="jquery-api-slideUp-fast-contents">
<p>①</p>
</div>
<div id="jquery-api-slideUp-fast-contents-2">
<p>②</p>
</div>
<div style="clear:left;"></div>