JavaScriptでクラスの切り替えを行う際に便利な`classList.toggle()`メソッドについて、基本的な使い方から実践的な例まで解説します。
classList.toggle()とは
`classList.toggle()`は、HTML要素のクラスを追加・削除するためのJavaScriptメソッドです。指定したクラスが存在しない場合は追加し、存在する場合は削除します。
基本的な使い方
element.classList.toggle('クラス名');例えば、以下のようなHTML要素があるとします:
<div id="target">Hello World</div>JavaScriptで以下のように記述することで、クラスの切り替えが可能です:
const element = document.getElementById('target');
element.classList.toggle('active');実践的な使用例
ハンバーガーメニューの実装
<button id="menuButton">Menu</button>
<nav id="navigation" class="nav">
<ul>
<li>Home</li>
<li>About</li>
<li>Contact</li>
</ul>
</nav>const menuButton = document.getElementById('menuButton');
const navigation = document.getElementById('navigation');
menuButton.addEventListener('click', () => {
navigation.classList.toggle('nav-open');
});ダークモード切り替え
<button id="themeToggle">テーマ切り替え</button>
<div id="content">コンテンツ</div>const themeToggle = document.getElementById('themeToggle');
const content = document.getElementById('content');
themeToggle.addEventListener('click', () => {
content.classList.toggle('dark-mode');
});第2引数の活用
`classList.toggle()`には第2引数としてブール値を指定することができます:
element.classList.toggle('クラス名', 条件);条件がtrueの場合はクラスを追加し、falseの場合は削除します。
// ウィンドウの幅が768px以上の場合にのみクラスを追加
element.classList.toggle('wide-screen', window.innerWidth >= 768);まとめ
- `classList.toggle()`は要素のクラスを簡単に切り替えることができる
- 単一の引数で使用すると、クラスの有無を自動的に判断して追加・削除を行う
- 第2引数にブール値を指定することで、条件付きでクラスの追加・削除が可能
- ハンバーガーメニューやダークモードなど、様々なUI実装に活用できる
このメソッドを使いこなすことで、よりインタラクティブなWebサイトの実装が可能になります。
関連情報
- MDN Web Docs: [Element.classList](https://developer.mozilla.org/ja/docs/Web/API/Element/classList)
- 互換性: IE10以降のモダンブラウザで使用可能
- パフォーマンス: DOMの直接操作となるため、頻繁な呼び出しは避けることを推奨