@@ -7,7 +7,7 @@ Vue は何らかの変化に応じてトランジションやアニメーショ
7
7
- ` <transition-group> ` コンポーネントを使用すると、パフォーマンス向上のために内部で FLIP 手法が適用され、複数の要素が所定の位置で更新された時にフックします。
8
8
- アプリケーション内をさまざまな状態へ遷移するには ` watchers ` を使用します。
9
9
10
- このガイドの次の 3 つのセクションでは、上記のことについてすべて説明します。 ただし、提供する便利な API とは別に、前セクションで説明したクラスとスタイルの宣言を使用して、アニメーションやトランジションを適用し、より単純なユースケースにすることもできます。
10
+ このガイドの次の 3 つのセクションでは、上記のことについてすべて説明します。ただし、提供する便利な API とは別に、前セクションで説明したクラスとスタイルの宣言を使用して、アニメーションやトランジションを適用し、より単純なユースケースにすることもできます。
11
11
12
12
この次のセクションでは、いくつかの Web アニメーションとトランジションの基本について説明し、さらに詳しく調べるためにいくつかのリソースにリンクします。Web アニメーションとそれらの原則が Vue のディレクティブの一部でどのように機能するか既に理解している場合、次のセクションをスキップしてください。Web アニメーションの基本についてもう少し学びたい人は、次のセクションを読んでください。
13
13
@@ -74,7 +74,7 @@ Vue.createApp(Demo).mount('#demo')
74
74
75
75
## スタイルバインディングによるトランジション
76
76
77
- 一部のトランジションによる効果は補間値を適用できます。たとえば、トランジションの発生中に要素にスタイルをバインドすることによって適用できます。 例を見てみましょう:
77
+ 一部のトランジションによる効果は補間値を適用できます。たとえば、トランジションの発生中に要素にスタイルをバインドすることによって適用できます。例を見てみましょう:
78
78
79
79
``` html
80
80
<div id =" demo" >
@@ -114,21 +114,21 @@ Vue.createApp(Demo).mount('#demo')
114
114
115
115
<common-codepen-snippet title =" Interpolation with style bindings " slug =" JjGezQY " :editable =" false " />
116
116
117
- この例では、マウスの動きに付随してアニメーションを作成しています。 CSS トランジションは要素にも適用され、更新中にどのような操作か要素に通知します。
117
+ この例では、マウスの動きに付随してアニメーションを作成しています。CSS トランジションは要素にも適用され、更新中にどのような操作か要素に通知します。
118
118
119
119
## パフォーマンス
120
120
121
- 上記のアニメーションは ` transforms ` のようなものを使用しています。そして、 ` perspective ` のような奇妙なプロパティを適用していることに気付くかもしれません。なぜそれらは単に ` margin ` や ` top ` などを使用するのではなく、そのように構築されたのでしょう?
121
+ 上記のアニメーションは ` transforms ` のようなものを使用しています。そして、` perspective ` のような奇妙なプロパティを適用していることに気付くかもしれません。なぜそれらは単に ` margin ` や ` top ` などを使用するのではなく、そのように構築されたのでしょう?
122
122
123
- パフォーマンスを意識することで、Web 上で非常にスムーズなアニメーションを作成できます。 私たちは可能な限り要素をハードウェアで高速化し、再描画をトリガーしないプロパティを使用したいと考えています。 これを実現する方法をいくつか見ていきましょう。
123
+ パフォーマンスを意識することで、Web 上で非常にスムーズなアニメーションを作成できます。 私たちは可能な限り要素をハードウェアで高速化し、再描画をトリガーしないプロパティを使用したいと考えています。これを実現する方法をいくつか見ていきましょう。
124
124
125
125
### 変形と不透明度
126
126
127
- [ CSS-Triggers] ( https://csstriggers.com/ ) などのリソースをチェックして、アニメーション化した場合にどのプロパティが再描画をトリガーするか確認できます。 ここで ` transform ` の項目を見ると:
127
+ [ CSS-Triggers] ( https://csstriggers.com/ ) などのリソースをチェックして、アニメーション化した場合にどのプロパティが再描画をトリガーするか確認できます。ここで ` transform ` の項目を見ると:
128
128
129
129
> ` transform ` を変更してもジオメトリの変更や描画はトリガーされません。これは非常に優れています。これは GPU を使用して ` compositor thread ` で操作を実行できる可能性が高いことを意味します。
130
130
131
- 不透明度も同様に動作します。 従って、それらは Web 上でのアニメーションに理想的な候補です。
131
+ 不透明度も同様に動作します。従って、それらは Web 上でのアニメーションに理想的な候補です。
132
132
133
133
### ハードウェアアクセラレーション
134
134
@@ -146,15 +146,15 @@ GreenSock のような多くの JS ライブラリは、ハードウェアアク
146
146
147
147
## タイミング
148
148
149
- 単純な UI トランジション、つまり中間を持たないとある状態から別の状態へのトランジションでは、0.1 秒から 0.4 秒の間のタイミングを使用するのが一般的であり、ほとんどの人は _ 0.25秒_ がスイートスポットになる傾向があることに気付きます。 そのタイミングをすべてに使用できますか? いいえ、そうではありません。 より長い距離を移動する必要があるもの、またはより多くのステップや状態変化があるものの場合、0.25 秒ではうまく機能せず、タイミングはより意図的に、よりユニークである必要があります。 ただし、これはアプリケーション内で適切な既定値を設定できないという意味ではありません。
149
+ 単純な UI トランジション、つまり中間を持たないとある状態から別の状態へのトランジションでは、0.1 秒から 0.4 秒の間のタイミングを使用するのが一般的であり、ほとんどの人は _ 0.25秒_ がスイートスポットになる傾向があることに気付きます。そのタイミングをすべてに使用できますか? いいえ、そうではありません。より長い距離を移動する必要があるもの、またはより多くのステップや状態変化があるものの場合、0.25 秒ではうまく機能せず、タイミングはより意図的に、よりユニークである必要があります。ただし、これはアプリケーション内で適切な既定値を設定できないという意味ではありません。
150
150
151
- また、トランジションの序盤は終盤よりも少し時間がかかると見栄えが良くなります。 ユーザは通常、序盤でガイドを受け途中で離脱したいので終盤での忍耐力が少なくなります。
151
+ また、トランジションの序盤は終盤よりも少し時間がかかると見栄えが良くなります。ユーザは通常、序盤でガイドを受け途中で離脱したいので終盤での忍耐力が少なくなります。
152
152
153
153
## イージング
154
154
155
- イージングはアニメーションの深みを伝える重要な方法です。 アニメーションの初心者がおかす最も一般的な間違いの 1 つは、序盤に ` ease-in ` を使用し、終盤に ` ease-out ` を使用することです。 実際には反対のことが必要です。
155
+ イージングはアニメーションの深みを伝える重要な方法です。 アニメーションの初心者がおかす最も一般的な間違いの 1 つは、序盤に ` ease-in ` を使用し、終盤に ` ease-out ` を使用することです。実際には反対のことが必要です。
156
156
157
- この状態遷移を適用すると、次のようになります。 :
157
+ この状態遷移を適用すると、次のようになります:
158
158
159
159
``` css
160
160
.button {
@@ -172,19 +172,19 @@ GreenSock のような多くの JS ライブラリは、ハードウェアアク
172
172
173
173
<common-codepen-snippet title =" Transition Ease Example " slug =" 996a9665131e7902327d350ca8a655ac " tab =" css,result " :editable =" false " :preview =" false " />
174
174
175
- イージングはアニメーション化されている素材の品質を伝えることもできます。 この CodePen を例にとると、どちらのボールが硬く、どちらのボールが柔らかいと思いますか?
175
+ イージングはアニメーション化されている素材の品質を伝えることもできます。この CodePen を例にとると、どちらのボールが硬く、どちらのボールが柔らかいと思いますか?
176
176
177
177
<common-codepen-snippet title =" Bouncing Ball Demo " slug =" wvgqyyW " :height =" 500 " :editable =" false " />
178
178
179
- イージングを調整することで多くのユニークな効果を得ることができ、アニメーションを非常にスタイリッシュにすることができます。CSS を使用すると、3 次のベジェ曲線のプロパティを調整して変形できます。 Lea Verou 氏によって作成された [ Playground] ( https://cubic-bezier.com/#.17,.67,.83,.67 ) は、イージングを探索するのに非常に役立ちます。
179
+ イージングを調整することで多くのユニークな効果を得ることができ、アニメーションを非常にスタイリッシュにすることができます。CSS を使用すると、3 次のベジェ曲線のプロパティを調整して変形できます。Lea Verou 氏によって作成された [ Playground] ( https://cubic-bezier.com/#.17,.67,.83,.67 ) は、イージングを探索するのに非常に役立ちます。
180
180
181
181
3 次のベジェ曲線が提供する 2 つのハンドルを使用すると単純なアニメーションで優れた効果を実現できますが、JavaScript では複数のハンドルを使用できるため、より多くのバリエーションが可能になります。
182
182
183
183
![ Ease Comparison] ( /images/css-vs-js-ease.svg )
184
184
185
- たとえば、バウンスさせる場合、CSS では各キーフレームを上下に宣言する必要があります。 JavaScript では[ GreenSock API (GSAP)] ( https://greensock.com/ ) で ` bounce ` を宣言することで、そのすべての動きを簡単に表現できます ( 他の JS ライブラリには他の種類のイージングの既定値があります)
185
+ たとえば、バウンスさせる場合、CSS では各キーフレームを上下に宣言する必要があります。JavaScript では [ GreenSock API (GSAP)] ( https://greensock.com/ ) で ` bounce ` を宣言することで、そのすべての動きを簡単に表現できます( 他の JS ライブラリには他の種類のイージングの既定値があります)
186
186
187
- CSS でバウンスに使用されるコードは次の通りです ( animate.css の例) :
187
+ CSS でバウンスに使用されるコードは次の通りです( animate.css の例) :
188
188
189
189
``` css
190
190
@keyframes bounceInDown {
0 commit comments