ホームページ > 記事 > ウェブフロントエンド > CSS におけるアニメーション プロパティのパフォーマンスに関するグラフィックおよびテキスト コードの紹介
p { -webkit-animation-duration: 5s; -webkit-animation-name: move; -webkit-animation-iteration-count: infinite; -webkit-animation-direction: alternate; width: 200px; height: 200px; margin: 100px; background-color: #808080; position: absolute; }
@-webkit-keyframes move{ from { left: 100px; } to { left: 200px; } }以下に示すように left を使用すると、ページは次のようになります。継続的に再描画がトリガーされます (赤い枠線で示されます):
@-webkit-keyframes move{ from { -webkit-transform: translateX(100px); } to { -webkit-transform: translateX(200px); } }以下に示すように -webkit-transform を使用します。ページはオレンジ色の枠線で示されるように再編成されるだけです:
-webkit-transform: translate3d(0, 0, 0); -moz-transform: translate3d(0, 0, 0); -ms-transform: translate3d(0, 0, 0); transform: translate3d(0, 0, 0);
-webkit-backface-visibility: hidden; -moz-backface-visibility: hidden; -ms-backface-visibility: hidden; backface-visibility: hidden; -webkit-perspective: 1000; -moz-perspective: 1000; -ms-perspective: 1000; perspective: 1000;たとえば、translate3d を通じて右に 500 ピクセル移動した次の要素のアニメーションの滑らかさは、left 属性を使用するよりも大幅に向上します:
#ball-1 { transition: -webkit-transform .5s ease; -webkit-transform: translate3d(0, 0, 0); } #ball-1.slidein { -webkit-transform: translate3d(500px, 0, 0); } #ball-2 { transition: left .5s ease; left: 0; } #ball-2.slidein { left: 500px; }注: 3D 変形はより多くのメモリと電力を消費します。実際のパフォーマンスに問題がある場合にのみ使用する必要があります。トレードオフを考慮しながら、ボックス シャドウとグラデーションの使用は最小限に抑えてください。これらはすべて揃っているため、フラット デザインを採用してください。 。 リフローを減らすためにアニメーション要素をドキュメント フローからできるだけ外に出す
position: fixed; position: absolute;
var newWidth = ap.offsetWidth + 10; ap.style.width = newWidth + 'px'; var newHeight = ap.offsetHeight + 10; ap.style.height = newHeight + 'px'; var newWidth = ap.offsetWidth + 10; var newHeight = ap.offsetHeight + 10; ap.style.width = newWidth + 'px'; ap.style.height = newHeight + 'px';
// 触发两次 layout var newWidth = ap.offsetWidth + 10; // Read ap.style.width = newWidth + 'px'; // Write var newHeight = ap.offsetHeight + 10; // Read ap.style.height = newHeight + 'px'; // Write // 只触发一次 layout var newWidth = ap.offsetWidth + 10; // Read var newHeight = ap.offsetHeight + 10; // Read ap.style.width = newWidth + 'px'; // Write ap.style.height = newHeight + 'px'; // Write
以上がCSS におけるアニメーション プロパティのパフォーマンスに関するグラフィックおよびテキスト コードの紹介の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。