クラス名変更、スタイルシート編集、アニメーションまで!JavaScriptでできるCSS操作のすべて
JavaScriptでCSSの値を変更する方法
styleプロパティを使う
これは最も基本的な方法です。要素のstyle
プロパティに直接アクセスし、プロパティ名と値を指定することで、CSSの値を変更できます。
<div id="my-element"></div>
const element = document.getElementById('my-element');
element.style.color = 'red';
element.style.fontSize = '20px';
この例では、#my-element
要素のカラーを赤、フォントサイズを20pxに設定しています。
classList
プロパティは、要素に適用されているクラスリストを操作できます。クラス名を追加・削除することで、CSSの値を間接的に変更できます。
<div class="my-class"></div>
const element = document.querySelector('.my-class');
element.classList.add('active');
element.classList.remove('disabled');
この例では、.my-class
要素にactive
クラスを追加し、disabled
クラスを削除しています。active
クラスとdisabled
クラスは、それぞれ異なるCSSスタイルを定義している必要があります。
CSSStyleSheetオブジェクトを使う
より高度な方法として、CSSStyleSheetオブジェクトを使ってスタイルシートを直接編集する方法があります。
const styleSheet = document.styleSheets[0];
// ルールを取得
const rule = styleSheet.rules[0];
// プロパティ値を変更
rule.style.color = 'blue';
この例では、最初のスタイルシートの最初のルールを取得し、そのカラープロパティを青に変更しています。
補足
- 上記以外にも、ライブラリやフレームワークを使ってCSSの値を変更する方法もあります。
- JavaScriptでCSSの値を変更する際は、パフォーマンスやブラウザの互換性などを考慮する必要があります。
HTML
<div id="my-element">
<h1>タイトル</h1>
<p>内容</p>
</div>
JavaScript
// `style`プロパティを使う
const element = document.getElementById('my-element');
element.style.color = 'red';
element.style.fontSize = '20px';
// `classList`プロパティを使う
element.classList.add('active');
element.classList.remove('disabled');
// CSSStyleSheetオブジェクトを使う
const styleSheet = document.styleSheets[0];
// ルールを取得
const rule = styleSheet.rules[0];
// プロパティ値を変更
rule.style.color = 'blue';
このコードを実行すると、#my-element
要素のタイトルと内容が赤色で、フォントサイズが20pxに変わります。また、active
クラスが追加され、disabled
クラスが削除されます。さらに、最初のスタイルシートの最初のルールのカラープロパティが青色に変更されます。
実行方法
- 上記のHTMLコードとJavaScriptコードをそれぞれ別のファイルに保存します。
- HTMLファイルをブラウザで開きます。
- JavaScriptファイルをブラウザの開発者ツールで実行します。
- 上記のコードは、あくまでサンプルです。実際の使用例に合わせて、コードを編集する必要があります。
JavaScriptでCSSの値を変更するその他の方法
setAttribute()
メソッドを使って、要素のstyle
属性を直接変更できます。
const element = document.getElementById('my-element');
element.setAttribute('style', 'color: red; font-size: 20px;');
getComputedStyle()
メソッドを使って、要素の現在のCSSスタイルを取得できます。取得したスタイルオブジェクトを使って、プロパティ値を変更できます。
const element = document.getElementById('my-element');
const style = getComputedStyle(element);
element.style.color = style.getPropertyValue('color');
element.style.fontSize = style.getPropertyValue('font-size');
この例では、#my-element
要素の現在のCSSスタイルを取得し、カラーとフォントサイズプロパティの値を要素のstyle
プロパティに設定しています。
CSSフレームワークを使う
jQuery
やVue.js
などのCSSフレームワークを使うと、JavaScriptでCSSの値をより簡単に変更できます。
アニメーションライブラリを使う
GreenSock Animation Platform
などのアニメーションライブラリを使うと、CSSの値をアニメーションさせて変化させることができます。
Web Components
を使うと、カスタム要素を作成し、その要素のCSSスタイルをJavaScriptで簡単に変更できます。
どの方法を使うべきかは、状況によって異なります。以下のような点を考慮する必要があります。
- 変更したいCSSプロパティの数
- 変更の頻度
- パフォーマンス
- ブラウザの互換性
javascript html css