jQuery「toggleClass」で指定のクラスを切り替える方法
jQueryのメソッド「.toggleClass()」は、指定のクラスを切り替える事ができるメソッド。
今回は、jQueryで「指定のクラスを付けたり消したりできる」メソッド「.toggleClass()」について、その使い方をサンプルを交えて解説しよう。
目次
.toggleClass()の機能とは?
.toggleClass()
は、要素に「指定のクラスがあれば削除して、無ければ付ける」事ができるメソッド。つまり、指定のクラスをON/OFFできるメソッドである。
例えば$("p").toggleClass("test");
とした場合、p
タグにtest
クラスがあれば、削除し、無ければtest
を付与する。
<p class="test">こんにちわ</p>
<p class>こんにちわ</p>
<p class="test">こんにちわ</p>
.toggleClass()の構文
要素の「指定のクラスのON/OFFを切り替える」構文
$("セレクタ").toggleClass("クラス名");
要素に「現在付いている全てのクラスのON/OFFを切り替える」構文(※指定要素にクラスがついていない場合は無効)
$("セレクタ").toggleClass();
要素に「複数のクラスを付けたり、消したり」する構文
$("セレクタ").toggleClass("クラス名A クラス名B");
複数のクラスのON/OFFを切り替える場合は.toggleClass("クラス名A クラス名B");
のように「半角スペース」を空けて、複数のクラス名を指定すれば良い。この場合、1度に複数のクラスが付いたり消えたりする挙動となる。
要素の第2引数に真偽値(true/false)を入れる構文
$("セレクタ").toggleClass("クラス名" ,"true or false");
true
の場合はクラスが付与され、false
の場合はクラスが削除される。(trueは「addClass」とfalseは「removeClass」と同じ機能になるが、工夫次第で使えるかもしれない)
要素の第2引数に「条件式」を入れる構文
$("セレクタ").toggleClass("クラス名" ,"条件式");
この場合、条件式の結果が「true」の場合はクラスが付与され、条件式の結果が「false」の場合はクラスが削除される。
toggleClassの使い所
.toggleClass()
は、クラスをON/OFFできる機能なので、WEB上の「見た目のON/OFFを切り替えるもの」に利用できる。
例えば、「ボタンをクリックする度にONの色に変わり、もう一度押したらOFFの色に戻りを繰り返す」ボタンなどが、簡単な例といえるので見ていこう。
$(function(){
$("button").on("click",function(){
$(this).toggleClass("on");
});
});
<button>ボタン</button>
<button class="on">ボタン</button>
<button class>ボタン</button>
あとは、クラスon
にCSSで色などをつければ完了だ。
jQueryで.toggleClass()で複数のクラスを切り替える例
$(function(){
$("button").on("click",function(){
$("#nav").toggleClass("on open");
});
});
<button>ボタン</button>
<ul id="nav">
<li>ナビ</li>
<li>ナビ</li>
</ul>
<button>ボタン</button>
<ul id="nav" class="on open">
<li>ナビ</li>
<li>ナビ</li>
</ul>
<button>ボタン</button>
<ul id="nav" class>
<li>ナビ</li>
<li>ナビ</li>
</ul>
このように書く事で$("#nav")
に"on open"
の2つのクラスのON/OFFの切り替えが実装できる。
クラスの切り替えに「条件文を利用」する例
.toggleClass()
で「条件文」を利用する例として、「ブラウザのウインドウサイズを取得して、768px未満ならspクラスを付けて、768px以上ならspクラスを削除する」例を見ていこう。
$(function(){
$(window).on('load resize', function() {
$("#nav").toggleClass("sp", $(window).width() < 768);
});
});
<ul id="nav">
<li>メニュー1</li>
<li>メニュー2</li>
</ul>
<ul id="nav" class="sp">
<li>メニュー1</li>
<li>メニュー2</li>
</ul>
<ul id="nav" class>
<li>メニュー1</li>
<li>メニュー2</li>
</ul>
この例で使われている
$(window).on('load resize', function() { 〜 });
というイベントは、ウインドウの「ロード時」と「ブラウザウインドウのりサイズ時」の2つのイベントを同時に取る書き方で、WEBサイトを表示した時とブラウザをリサイズする時に毎回発生するイベントであり、「ブラウザの幅」によって何か処理をする時によく使う方法なので、覚えておこう!
ここでは.toggleClass("sp", $(window).width() < 768);
と書かれており、条件文として$(window).width()
はウインドウのサイズを取得する記述で、ウインドウサイズをリサイズする度にウインドウサイズを取得して、768px
より大きいか小さいかを判断することになる。
この場合、768px
より小さければsp
クラスが付き、768pxよりも大きければsp
クラスが削除される仕組みだ。
フロントエンドスキルをもっと早く・簡単にマスターしたい方へ!
JavaScriptやCSS・Sassなどフロントエンド学習は、初心者が「独学」で完全マスターするには半年以上かかり、相当根気よくやらないと挫折してしまうか、ライバルに出遅れてしまう…。
短期間でフロントエンド・WEBデザインをマスターするには?
私の経験だが、手軽なオンラインスクールを利用した方が圧倒的に早かった。独学だと「何からどこまで勉強すれば良いかわからない」ものを、これだけ学習すればOKというポイントをおさえた教科書で学習しながら、わからない点を質問し放題なので、多少の出費は必要だが2ヶ月程度でサクッと学べたので逆に経済的だった!(実際に私がオンラインスクールを受講して体感)
では「オススメはどのスクール?」とよく聞かれるのだが、たった1つのおすすめスクールがある訳でなく、その人によって最適なスクールが違う。
- 学習スタイルが自分に合っているか?
- 低価格でコスパの良い学習料金か?
- 講師に質問しやすい環境か?
- 無料体験できるスクールか?
数あるスクールの中から、実際に受講してわかった事や現役プロならでは目線で厳選・比較したこちらの記事「現役プロ比較!短期 「WEBデザインスクール12校」おすすめランキング!」を参考に自分に合ったスクールを探そう↓
jQuery「toggleClass」で指定のクラスを切り替える方法のまとめ
以上が、jQueryで「.toggleClass()を使って、指定のクラスを切り替える」方法でした。
その他のjQueryメソッドについて確認したい方は、jQueryメソッドを一覧で解説したこちらの記事を確認しておこう!
※当記事の掲載内容は執筆現在の個人の見解・調査によるもので、動作・サービス等を保証するものではありません。最新情報は各公式サイトでご確認頂き、購入・契約・データ作成等はご自身の判断・責任でお願いします。 免責事項
関連記事
jQuery「html()」でHTMLを取得・変更する
jQuery「val」でフォームや要素のvalue値を取得・設定する
videoタグの使い方とJavaScriptでオリジナルコントローラーを自作する方法
jQuery「.prevUntil() / .nextUntil()」で前後の兄弟要素を取得する方法
jQuery「prepend / prependTo」で要素内の先頭にHTMLを挿入する
jQuery「.get()」で jQueryオブジェクトからDOM要素を取得する方法
jQuery「insertBefore」でHTMLを「指定要素の直前」に移動する
jQuery「attr」で属性値を取得/設定する方法
jQueryでif文を使った条件分岐の書き方
bxSliderの使い方と「オプション」によるカスタマイズ
サイト内検索
新着記事
- YouTubeより詳しく!まとめて学べる『WEBデザイン動画講座』
- Figmaの背景切り抜きプラグイン『Remove BG』のAPI Key取得方法と使い方
- WEBデザイン動画講座のご紹介【お得な割引アリ】
- WixでWEBデザイナーが「ポートフォリオサイト」を作ってみた!
- WEBデザインツールの比較!初心者におすすめは?Figma Photoshop Xd Illustrator
- CodeCampGATE(コードキャンプゲート)とは?転職・就職先と評判
- コードキャンプの「Webデザイン・Webデザイン副業コース」を卒業生が解説!
- テックアカデミー「はじめての副業コース」卒業生が内容を解説!
- PHPの独学!挫折しないおすすめ勉強方法!
- 16インチMacbook Proで使える100Wモバイルバッテリー Zendure SuperTankレビュー
- [体験談] CodeCamp(コードキャンプ)で挫折する理由!
- テックアカデミー「受講した感想・評判」学習内容の総まとめ!
- Photoshop 超リアルな商品写真の鏡面反射の作り方
- デイトラの評判は?詳細内容とメリット・デメリットを解説
- CSSだけ超簡単!画像トリミングできる 「object-fit」 の使い方
- コードキャンプ 「無料体験・カウンセリング」を受講してみた!予約方法や内容の体験談
- デジタルハリウッドSTUDIO by LIGの評判
- PhotoshopでWEBデザインする基本の設定とテクニック
- テックアイエス評判は?現役プロがTECH I.S.を徹底調査!
- WEBデザインの練習・勉強をしながら「お金までもらえる」超おすすめの学習方法!
カテゴリー
タグリスト