![]()
jQuery で要素の表示・非表示を操作する: style.display 属性詳解
この文章では、jQuery の css() メソッドと show()、hide() などのショートカットメソッドを使って、要素の display プロパティを操作し、要素の表示と非表示を実現する方法を詳しく解説します。
1. jQuery で要素の表示・非表示を操作する基礎
jQuery で要素の表示・非表示を切り替える最も基本的な方法は、css() メソッドを使って display プロパティを直接操作することです。
1.1. css('display', 'block') と css('display', 'none')
css('display', 'block'): 要素をブロックレベル要素として表示します。css('display', 'none'): 要素を非表示にします。要素はページから完全に削除されたかのように振る舞い、スペースも占有しなくなります。
<p id="myParagraph">この段落は表示されます。</p>
<button id="showButton">段落を表示</button>
<button id="hideButton">段落を非表示</button>
<script>
$(document).ready(function(){
$("#hideButton").click(function(){
$("#myParagraph").css("display", "none");
});
$("#showButton").click(function(){
$("#myParagraph").css("display", "block");
});
});
</script>
1.2. display プロパティの値
display プロパティには、block、inline、inline-block、none など、さまざまな値を設定できます。それぞれの値は、要素の表示方法に影響を与えます。
| 値 | 説明 |
|---|---|
block |
ブロックレベル要素として表示します。新しい行から始まり、幅いっぱいに広がります。 |
inline |
インライン要素として表示します。新しい行から始まらず、必要な幅だけを占有します。 |
inline-block |
インラインレベル要素として表示されますが、幅と高さを指定できます。 |
none |
要素を非表示にします。 |
2. 操作を簡略化する: jQuery の show() と hide() メソッド
css('display', 'block') や css('display', 'none') を使う代わりに、jQuery は show() と hide() というショートカットメソッドを提供しています。これらのメソッドは、要素の表示と非表示をより簡単に操作できます。
2.1. show() と hide() の基本的な使い方
show(): 非表示の要素を表示します。hide(): 表示されている要素を非表示にします。
<p id="myParagraph">この段落は表示されます。</p>
<button id="showButton">段落を表示</button>
<button id="hideButton">段落を非表示</button>
<script>
$(document).ready(function(){
$("#hideButton").click(function(){
$("#myParagraph").hide();
});
$("#showButton").click(function(){
$("#myParagraph").show();
});
});
</script>
2.2. show() メソッドと要素タイプ
show() メソッドは、要素のタイプに応じて適切な display 値を自動的に設定します。たとえば、<div> 要素に対して show() を呼び出すと、display プロパティは block に設定されます。
3. アニメーション速度を制御する: show(speed) と hide(speed)
show() と hide() メソッドに速度パラメータを渡すことで、表示と非表示のアニメーション速度を制御できます。
3.1. 速度値
速度は、'slow'、'normal'、'fast'、またはミリ秒単位の数値で指定できます。
$("#myElement").show("slow");
$("#myElement").hide(1000); // 1000ミリ秒 = 1秒
4. カスタムアニメーション効果: show(speed, easing, callback) と hide(speed, easing, callback)
show() と hide() メソッドには、アニメーションをさらにカスタマイズするためのオプションパラメータがあります。
4.1. イージング関数
イージング関数は、アニメーションの変化の割合を制御します。jQuery は 'swing' と 'linear' の 2 つの組み込みイージング関数を用意しています。
4.2. コールバック関数
コールバック関数は、アニメーションの完了後に実行される関数です。
$("#myElement").show(500, "swing", function(){
// アニメーション完了後に実行される処理
});
5. toggle() メソッド: 要素の表示状態をワンクリックで切り替える
toggle() メソッドは、要素の現在の表示状態に基づいて、要素を表示するか非表示にするかを切り替えます。
$("#myElement").toggle();
6. 注意点とベストプラクティス
- 要素の表示状態を頻繁に切り替える必要がある場合は、
show()とhide()を繰り返し使用するのではなく、CSS クラスを使って制御することをお勧めします。 addClass()、removeClass()、toggleClass()メソッドを使って、CSS クラスを要素に追加または削除できます。
.hidden {
display: none;
}
$("#myElement").addClass("hidden");
$("#myElement").removeClass("hidden");
$("#myElement").toggleClass("hidden");
まとめ
この記事では、jQuery を使って要素の display プロパティを操作し、要素の表示と非表示を制御する方法を解説しました。これらの知識を活かして、動的でインタラクティブなWebページを作成しましょう。
QA
Q1: show() と hide() を使ったときに、要素の高さはどのように変化しますか?
A1: show() と hide() は、要素の高さをアニメーション表示します。つまり、要素が表示されるときは徐々に高さが大きくなり、非表示になるときは徐々に高さが小さくなります。
Q2: display: none と visibility: hidden の違いは何ですか?
A2: display: none は要素を完全に非表示にし、ページのレイアウトから削除します。一方、visibility: hidden は要素を非表示にしますが、ページのレイアウト上ではスペースを維持します。
Q3: 複数の要素の表示状態を一度に切り替えられますか?
A3: はい、jQuery セレクタを使って複数の要素を選択し、show()、hide()、または toggle() メソッドを適用できます。
$("p").hide(); // すべての <p> 要素を非表示にする
その他の参考記事:jquery css 複数