JavaScript
 Computer >> コンピューター >  >> プログラミング >> JavaScript

jQueryのtoggle()メソッドの使い方を徹底解説!基本構文からアニメーション実装まで

jQueryのtoggle()メソッドは、照明のスイッチのようなものだと考えると分かりやすいでしょう。呼び出されると、選択した要素を「オン」または「オフ」に切り替えます。つまり、要素をユーザーに表示したり非表示にしたりする動作を切り替えるのです。この記事では、ボタンがクリックされたときにtoggle()を使ってテキストを表示・非表示にする方法を解説します。

jQuery toggle()とは?

jQueryのtoggle()メソッドは、Webページ上で選択された要素を表示または非表示にするメソッドです。その名前の通り、照明のスイッチのように要素の表示を「オン」「オフ」に切り替える働きをします。通常はHTMLのボタンと組み合わせて使われますが、実際にはどの要素に対しても呼び出すことが可能です。

表示の「オン」「オフ」を切り替える機能に加えて、jQueryのtoggle()はアニメーションの継続時間(duration)を引数として受け取ることができます。duration引数には数値または文字列を指定でき、durationを指定すると指定した時間だけ続くアニメーションが作成されます。

さらに、toggle()はアニメーション完了時に実行されるコールバック関数も受け取れます。コールバック関数とは、後で実行されるために別の関数へ渡される関数のことです。引数が何も指定されていない場合、toggle()は単に表示を「オン」または「オフ」に切り替えるだけです。

それでは、基本構文を確認した後、サンプルコードで詳しく見ていきましょう。サンプルコードでは、画像とテキストを切り替えるアニメーションを扱います。

toggle()の基本構文

はじめに述べたように、jQueryのtoggle()メソッドはデフォルトでは照明のスイッチのような働きをします。クリックされると、選択された要素の表示を「オン」または「オフ」に切り替えます。すべてのjQueryメソッドと同様に、toggle()を呼び出す前に要素を選択しておく必要があります。

まず、引数なしでtoggle()を使う例を見てみましょう。HTMLファイルは以下の通りです。

<button>
Click me
</button>
<p>
Read me!
</p>
<p id="hide" style="display: none">
NO! Read ME!
</p>

このHTMLファイルは、ボタン1つと段落タグ2つを表示しています。id「hide」が付いた<p>タグのstyle属性に注目してください。displayをnoneに設定すると、その段落要素は画面上から非表示になります。

HTMLファイルは予想通りに表示されています。次に、jQueryのtoggleを使って、非表示の<p>タグを表示してみましょう。この例では、jQueryコードをHTMLファイル内に記述します。そのためには、jQueryを<script>タグで囲む必要があります。

<script>
$("button").click(function() {
  $("#hide").toggle();
})
</script>

すべてのjQueryメソッドと同様に、まず要素を選択する必要があります。ここではbutton要素を選択し、click()メソッドを呼び出しています。click()メソッドは、選択されたボタンにイベントリスナーを登録するようなものです。ボタンがクリックされるとコールバック関数が呼び出され、toggle()メソッドが実行されます。jQueryのclick()について詳しくは、公式ドキュメントをご参照ください。

実際のコードの動作を見てみましょう。

jQueryのtoggle()メソッドの使い方を徹底解説!基本構文からアニメーション実装まで

ボタンをクリックすると、非表示だった段落タグが表示されました。toggle()の構文に慣れたところで、次はアニメーションを使った例を見ていきましょう。

toggle()を使ったアニメーション実例

ここまで、toggle()で選択した要素を表示・非表示にする方法を見てきました。次は、少し複雑なアニメーションの例を見てみましょう。心配いりません。ほとんどの概念は前のセクションで説明済みです。

この例では、ボタン、画像、<p>タグで囲まれたテキストを表示します。HTMLファイルは次のようになります。

<button>
Click me
</button>
<img id="cat" src="https://images.pexels.com/photos/2256259/pexels-photo-2256259.jpeg?auto=compress&cs=tinysrgb&dpr=1&w=500"> 
<p style="display: none">
Animation Complete
</p>

ここでも、display属性の値により段落要素は非表示になっています。

jQueryのtoggle()メソッドの使い方を徹底解説!基本構文からアニメーション実装まで

猫の画像がボタンと一緒に表示されています。<p>タグのstyle属性が「display: none」に設定されているため、テキストは隠れたままです。次に、ボタンがクリックされたときに、画像をゆっくりと非表示にしてテキストを表示してみましょう。

jQuery toggleのduration引数には、数値または文字列を指定できます。数値の場合、その値はミリ秒を表します。文字列の場合、toggle()は「fast」(200ミリ秒)または「slow」(600ミリ秒)を受け付けます。

例えば、画像をゆっくり非表示にしたいので、toggle()の引数に「slow」を使用します。最初の例と同様に、jQueryをHTMLファイルの下部にあるscriptタグで囲みます。

<script>
$('button').click(function() {
  $('#cat').toggle('slow', function() {
    $('p').toggle();
  })
})
</script>

ボタンを選択してclick()を呼び出した後、最初のコールバック関数で猫の画像を非表示にします。toggle()に文字列「slow」を渡すことで、さらに別のコールバック関数を渡すことができます。このコールバック関数は、600ミリ秒が経過した後に実行されます。

「slow」の時間が経過すると、段落要素を「オン」に切り替えます。これで<p>タグがユーザーに表示されます。

jQueryのtoggle()メソッドの使い方を徹底解説!基本構文からアニメーション実装まで

gifを見ると、画像が非表示になるまでに少し時間がかかり、その後すぐにテキストに置き換わっているのが分かります。toggle()のさまざまな使い方を組み合わせることで、わずか数行のコードで動的なアニメーションを作成できました。

まとめ

この記事では、jQueryのtoggle()とは何か、どのような働きをするのかを解説しました。その後、基本構文とサンプルコードを確認し、学んだ内容を組み合わせて、画像を使った簡単なアニメーションを作成しました。

jQueryのtoggle()に慣れたら、次のプロジェクトで要素の表示切り替えを試してみてください。ボタンがクリックされたときに画像へアニメーションを追加することもできます。jQueryのtoggle()についてさらに詳しく知りたい場合は、公式ドキュメントを参照してください。それでは、楽しいコーディングを!

  1. JavaScriptのimportで波括弧「{}」を使う理由とは?名前付きエクスポートの基本をわかりやすく解説

    JavaScript(ESモジュール)でモジュールを読み込む際、import 文に波括弧 { } を付けるかどうか迷ったことはありませんか?実はこの波括弧は、名前付きエクスポート(named export)を読み込むために必要な記法です。本記事では、実際のコード例を使いながら、{ } の役割と使い方を詳しく解説します。 importで { } を使う場面とは JavaScriptのESモジュールでは、エクスポート方法によって読み込み側の書き方が変わります。 名前付きエクスポート:export { 関数名 } のようにエクスポートされたものを読み込む場合は、import { 名前 } fro

  2. jQueryを使ってコンテナdiv内の画像をドラッグ&パンで移動させる方法

    マウスのmousedown・mousemove・mouseupという3つのイベントを組み合わせることで、画像を自由に移動させ、ドラッグ(パン)操作を実現できます。特別なプラグインを使わずとも、jQueryの基本機能だけで簡単に実装できるのが魅力です。 動作の仕組み ドラッグ操作は、以下の流れで実現されます。 mousedown(押下時):ドラッグの開始点となるマウスカーソルの座標を記録します。 mousemove(移動中):カーソルの移動量を計算し、CSSのtransformプロパティを使って画像をリアルタイムに移動させます。 mouseup(離した時):ドラッグを終了し、mousemove