その他

Other

アニメーション

CSSにおけるtransitionとanimationは、要素のスタイル変化を滑らかにするための2つの異なる手法です。
JavaScriptでアニメーションを行う場合、最も簡単なのは JavaScriptでタイミングのみを制御し、アニメーションはCSSを使う方法です。

CSSのtransition

transitionは、要素のスタイルが変更されたときにその変化をアニメーション効果で滑らかにするプロパティです。
transitionは、スタイルの変更がトリガー(ホバー、クリックなど)されたときのみアニメーションが発生します。

.hoge {
		background-color: blue;
		transition: background-color 0.5s ease;
}

.hoge:hover {
	background-color: red;
}

CSSのanimation

animationは、トリガーなしで指定されたスタイルを時間の経過とともに自動的に変更するアニメーションを作成します。
animationは、@keyframesルールで定義されたスタイル変化に基づいて実行されます。

@keyframes slide {
	0% {
		transform: translateX(0);
	}
	100% {
		transform: translateX(100px);
	}
}

.element {
	animation: slide 2s ease-in-out infinite;
}

命名規則

CSSで「is-状態」というクラスは、要素が特定の状態を表す際に使われることが多い命名規則です。
「is-」のプレフィックスを使用することで、状態を明確に区別しやすくコードの可読性と保守性が向上します。

よく使われる「is-」クラス

is-active

要素が「アクティブ」な状態を表します。

.hoge{
	opacity: 0;
}
.hoge.is-active{
	opacity: 1;
}

is-hidden

要素が非表示であることを示します。

.hoge{
	display: block;
}
.hoge.is-hidden{
	display: none;
}

is-loading

要素が「読み込み中」であることを表します。

.hoge{
	cursor: auto;
}
.hoge.is-hidden{
	cursor: progress;
}

is-disabled

要素が「無効」な状態を示します。

.hoge{
	pointer-events: auto;
	opacity: 1;
}
.hoge.is-hidden{
	pointer-events: none;
	opacity: 0.5;
}

is-open

メニューやモーダルが開いている状態を表します。

.hoge{
	opacity: 0;
	visibility: hidden;
}
.hoge.is-hidden{
	opacity: 1;
	visibility: visible;
}

状態を表す言葉

要素の表示状態に関するクラス

クラス名 状態の説明
is-visible 要素が見えている状態
is-hidden 要素が隠れている状態
is-shown 要素が表示された状態(アニメーションなどで)
is-view 要素がビューポート内にある状態

操作・インタラクションに関するクラス

クラス名 状態の説明
is-active 要素がアクティブ状態
is-disabled 要素が無効状態
is-prev 前の要素を示す状態
is-next 次の要素を示す状態
is-current 現在の要素を示す状態
is-focus 要素がフォーカスされた状態
is-selected 要素が選択された状態
is-done 要素の入力や処理が完了した状態
is-clone 要素がクローンされた状態

読み込み・初期化に関するクラス

クラス名 状態の説明
is-loading 要素が読み込み中の状態
is-load 要素がロードされた状態
is-DOMContentLoaded DOMが読み込まれた状態
is-init 要素が初期化された、もしくは準備が整った状態
is-set 要素がセットされた状態

アニメーション・動作に関するクラス

クラス名 状態の説明
is-start アニメーションが始まった状態
is-change 要素が変化中の状態
is-open 要素が開いた状態(メニューやモーダル)
is-close 要素が閉じた状態(メニューやモーダル)

エラー・バリデーションに関するクラス

クラス名 状態の説明
is-error 要素がエラー状態
is-invalid 要素が無効(バリデーションに失敗)状態

例えば、JavaScriptで「is-active」を追加したり削除したりすることで、要素の表示・非表示を切り替えられます。

const hoge = document.querySelector('.hoge');
hoge.classList.toggle('is-active');