アニメーション
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');