[解決済み] will-change' や translateZ() ハックは 'transition: height' のパフォーマンスを向上させるか?
質問
開閉時に高さがアニメーションするアコーディオンを作っていますが、コンテンツの高さはJSで計算されています。最高のパフォーマンスを確保したいので、強制的なハードウェアアクセラレーションについて考えていました。
.accordion-item-content {
overflow: hidden;
transition: height .3s ease;
transform: translateZ(0);
will-change: transform;
}
Chrome Dev Toolsでは、アコーディオンアイテムがそれぞれレイヤーを取得していることがわかりますが(will-changeやtransformプロパティのため)、これはパフォーマンスアップにつながるのでしょうか? それとも、私がここで理解したように、GPUレンダリングから恩恵を受けることができる唯一のプロパティは、transform、opacity、filterなのでしょうか? http://www.sitepoint.com/introduction-to-hardware-acceleration-css-animations/
もう一つ質問です。will-change: height'は何か効果があるのでしょうか?有効なように見えますが ( https://developer.mozilla.org/en-US/docs/Web/CSS/will-change しかし、レイヤーが作成されないことが、開発ツールで確認できました。
どうすればいいですか?
特になし
will-change
または
transform: translateZ()
は、要素をそれ自身のレイヤーに昇格させ、GPUに送ります。
次の例を見てください。
https://csstriggers.com/
. アニメーションを行うのは
transform
と
opacity
. を使用していても、その他のプロパティは再描画やレイアウトの再計算の原因となります。
will-change
.
関連
-
[解決済み】CSSの背景画像が表示されない。
-
[解決済み] div要素間の空白を削除する方法
-
[解決済み] HTMLの#記号の文字実体は?
-
[解決済み] 絶対位置が機能しない
-
[解決済み] CSSでulのインデントを削除する
-
[解決済み] <html xmlns="http://www.w3.org/1999/xhtml">」は何をするのですか?
-
[解決済み] 電話番号のマークアップはどのように行うのですか?
-
[解決済み] HTMLボタンのテキストを固定幅で折り返すには?
-
[解決済み] mailchimpのメールインラインスタイルのコーディングがいつも通りできない
-
[解決済み] [Solved] How to change the height of a <br>?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
js プログラミング共通のエラーです。Uncaught TypeError。XXXは関数ソリューションではありません
-
[解決済み] span with onclick event inside the tag
-
[解決済み] CSSでulのインデントを削除する
-
[解決済み] ionic 4でion-buttonをセンタリングする方法は?[重複しています]
-
[解決済み] 入力のラジオ要素を水平に揃えるにはどうしたらいいですか?
-
[解決済み] 電話番号のマークアップはどのように行うのですか?
-
[解決済み] margin-block-startとmargin-topの違いは何ですか?
-
[解決済み] HTML CSS インビジブルボタン
-
[解決済み] Add a scrollbar to a <textarea> [duplicate]
-
[解決済み] 画像をインラインで表示する方法