From b032e701df5945fb9ae22553d54d70b06d2c1af6 Mon Sep 17 00:00:00 2001 From: Masahiro FUJIMOTO Date: Sun, 20 Feb 2022 01:40:33 +0900 Subject: 2021/08/13 時点の英語版に同期 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- files/ja/web/css/@keyframes/index.md | 138 ++++++++++++++++------------------- 1 file changed, 64 insertions(+), 74 deletions(-) diff --git a/files/ja/web/css/@keyframes/index.md b/files/ja/web/css/@keyframes/index.md index 7d56c3104e..3a1480db3a 100644 --- a/files/ja/web/css/@keyframes/index.md +++ b/files/ja/web/css/@keyframes/index.md @@ -2,18 +2,21 @@ title: '@keyframes' slug: Web/CSS/@keyframes tags: - - '@-規則' - - CSS - - CSS アニメーション - - Reference - アニメーション + - アットルール + - CSS + - リファレンス +browser-compat: css.at-rules.keyframes translation_of: Web/CSS/@keyframes --- -
{{CSSRef}}
+{{CSSRef}} + +**`@keyframes`** は CSS の[アットルール](/ja/docs/Web/CSS/At-rule)で、アニメーションの流れに沿ったキーフレーム(または中間地点)のスタイルを定義することによって、一連の CSS アニメーションの中間ステップを制御します。これにより、アニメーションの中間ステップを[トランジション](/ja/docs/Web/CSS/CSS_Transitions)よりも詳細に制御できます。 -

CSS の @keyframes @-規則は、アニメーションの流れに沿ったキーフレーム (または中間地点) のスタイルを定義することによって、一連の CSS アニメーションの中間ステップを制御します。これにより、アニメーションの中間ステップを CSS トランジションよりも詳細に制御できます。

+## 構文 -
@keyframes slidein {
+```css
+@keyframes slidein {
   from {
     transform: translateX(0%);
   }
@@ -21,61 +24,78 @@ translation_of: Web/CSS/@keyframes
   to {
     transform: translateX(100%);
   }
-}
+} +``` + +### 値 + +- {{cssxref("custom-ident")}} + - : キーフレームのリストを識別する名前。これは CSS 構文で定義されている識別子に適合する必要があります。 +- `from` + - : アニメーションの始まりである `0%` を示します。 +- `to` + - : アニメーションの終わりである `100%` を示します。 +- {{cssxref("<percentage>")}} + - : 指定したキーフレームがアニメーションの中で作動する時間を示すパーセント値です。 -

JavaScript は、 CSS オブジェクトモデルのインターフェイス {{domxref("CSSKeyframesRule")}} によって @keyframes @-規則にアクセスできます。

+## 解説 -

キーフレームを使うには、アニメーションとそのキーフレームを一致させるために、 {{ cssxref("animation-name") }} プロパティで指定したものと同じ名前がついた @keyframes 規則を作成します。それぞれの @keyframes 規則は、キーフレームセレクターのスタイルリストを含んでいます。それは、そのキーフレームが作動する時のアニメーションのパーセント値と、そのキーフレームでのスタイルを指定するブロックとで構成されています。

+JavaScript は、 CSS オブジェクトモデルのインターフェイス {{domxref("CSSKeyframesRule")}} によって `@keyframes` アットルールにアクセスできます。 -

キーフレームは任意の順番で並べることができます。それらは、作動する時を示すパーセント値の順番に従って制御されます。

+キーフレームを使うには、アニメーションとそのキーフレームを一致させるために、 {{ cssxref("animation-name") }} プロパティで指定したものと同じ名前がついた `@keyframes` ルールを作成します。それぞれの `@keyframes` ルールは、キーフレームセレクターのスタイルリストを含んでいます。それは、そのキーフレームが作動する時のアニメーションのパーセント値と、そのキーフレームでのスタイルを指定するブロックとで構成されています。 -

有効なキーフレームのリスト

+キーフレームは任意の順番で並べることができます。それらは、作動する時を示すパーセント値の順番に従って制御されます。 -

キーフレーム規則にアニメーションの開始と終了の状態 (0%/from100%/to) を明示しない場合、ブラウザはその要素の既存のスタイルを開始・終了の状態として用います。これは、その要素を初期状態からアニメーションさせて元に戻すという処理に利用できます。

+### 有効なキーフレームのリスト -

キーフレーム規則にアニメーションができないプロパティを含めた場合、そのプロパティは無視されますが、他のアニメーションが可能なプロパティについてはアニメーションが実行されます。

+キーフレームルールにアニメーションの開始と終了の状態 (`0%`/`from` と `100%`/`to`) を明示しない場合、ブラウザーはその要素の既存のスタイルを開始・終了の状態として用います。これは、その要素を初期状態からアニメーションさせて元に戻すという処理に利用できます。 -

重複の解決

+キーフレームルールにアニメーションができないプロパティを含めた場合、そのプロパティは無視されますが、他のアニメーションが可能なプロパティについてはアニメーションが実行されます。 -

複数のキーフレームに同じ名前が付けられている場合、最後に宣言されたものが使用されます。 @keyframes 規則がカスケード的に継承されることはないため、アニメーションが複数の規則セットによるキーフレームをもとにして行われることはありません。

+### 重複の解決 -

指定されたアニメーションのタイムオフセットが重複している場合は、 @keyframes 規則内のそのパーセント値を持つすべてのキーフレームがそのフレームに使用されます。 @keyframes 規則の中で、同じパーセント値を指定した複数のキーフレームがカスケード的に継承されます。

+複数のキーフレームに同じ名前が付けられている場合、最後に宣言されたものが使用されます。 `@keyframes` ルールがカスケード的に継承されることはないため、アニメーションが複数のルールセットによるキーフレームをもとにして行われることはありません。 -

一部のキーフレームでプロパティが指定されていない場合

+指定されたアニメーションのタイムオフセットが重複している場合は、 `@keyframes` ルール内のそのパーセント値を持つすべてのキーフレームがそのフレームに使用されます。 `@keyframes` ルールの中で、同じパーセント値を指定した複数のキーフレームがカスケード的に継承されます。 -

一部のキーフレームでしか指定されていないプロパティは、補完されます (ただし、補完することができないプロパティは除きます。このようなプロパティは、アニメーションされません)。例えば:

+### 一部のキーフレームでプロパティが指定されていない場合 -
@keyframes identifier {
+一部のキーフレームでしか指定されていないプロパティは、補完されます(ただし、補完することができないプロパティは除きます。このようなプロパティは、アニメーションされません)。
+
+```css
+@keyframes identifier {
   0% { top: 0; left: 0; }
   30% { top: 50px; }
   68%, 72% { left: 50px; }
   100% { top: 100px; left: 100%; }
 }
-
+``` -

この例では、 {{ cssxref("top") }} プロパティは 0%, 30%, 100% のキーフレームでアニメーション指定されています。また、 {{ cssxref("left") }} プロパティは 0%, 68%, 72%, 100% のキーフレームで指定されています。

+この例では、 {{ cssxref("top") }} プロパティは `0%`, `30%`, `100%` のキーフレームでアニメーション指定されています。また、 {{ cssxref("left") }} プロパティは `0%`, `68%`, `72%`, `100%` のキーフレームで指定されています。 -

キーフレームが複数宣言された場合

+### キーフレームが複数宣言された場合 -

キーフレームが複数宣言されているものの、アニメーションで作用する全てのプロパティがそれぞれのキーフレームに存在するわけではない場合、これらのキーフレームで指定されたすべての値が適用されます。例えば、

+キーフレームが複数宣言されているものの、アニメーションで作用する全てのプロパティがそれぞれのキーフレームに存在するわけではない場合、これらのキーフレームで指定されたすべての値が適用されます。例えば、 -
@keyframes identifier {
+```css
+@keyframes identifier {
   0% { top: 0; }
   50% { top: 30px; left: 20px; }
   50% { top: 10px; }
   100% { top: 0; }
 }
-
+``` -

この例では、 50% のキーフレームで、使用される値は top: 10pxleft: 20px です。

+この例では、 `50%` のキーフレームで、使用される値は `top: 10px` と `left: 20px` です。 -

カスケード的なキーフレームは Firefox 14 から対応しています。

+カスケード的なキーフレームは Firefox 14 から対応しています。 -

キーフレーム内の !important

+### キーフレーム内の `!important` -

キーフレーム内で !important が付けられた宣言は無視されます。

+キーフレーム内で `!important` が付けられた宣言は無視されます。 -
@keyframes important1 {
+```css
+@keyframes important1 {
   from { margin-top: 50px; }
   50%  { margin-top: 150px !important; } /* 無視される */
   to   { margin-top: 100px; }
@@ -87,57 +107,27 @@ translation_of: Web/CSS/@keyframes
   to   { margin-top: 150px !important; /* 無視される */
          margin-bottom: 50px; }
 }
-
- -

構文

- -

+``` -
-
{{cssxref("custom-ident")}}
-
キーフレームのリストを識別する名前。これは CSS 構文規則で定義されている識別子に適合する必要があります。
-
from
-
アニメーションの始まりである 0% を示します。
-
to
-
アニメーションの終わりである 100% を示します。
-
{{cssxref("<percentage>")}}
-
指定したキーフレームがアニメーションの中で作動する時間を示すパーセント値です。
-
- -

形式文法

+## 形式文法 {{csssyntax}} -

+## 例 + +### CSS アニメーションの例 -

CSS アニメーションの利用 を参照してください。

+[CSS アニメーションの使用](/ja/docs/Web/CSS/CSS_Animations/Using_CSS_animations)を参照してください。 -

仕様書

+## 仕様書 - - - - - - - - - - - - - - - -
仕様書状態備考
{{ SpecName('CSS3 Animations', '#keyframes', '@keyframes') }}{{ Spec2('CSS3 Animations') }}
+{{Specifications}} -

ブラウザーの互換性

+## ブラウザーの互換性 -

{{Compat("css.at-rules.keyframes")}}

+{{Compat}} -

関連情報

+## 関連情報 - +- [CSS アニメーションの使用](/ja/docs/Web/CSS/CSS_Animations/Using_CSS_animations) +- {{domxref("AnimationEvent")}} -- cgit v1.2.3-54-g00ecf