私の最初の推測では、ここに示されている証拠があるため、答えはノーです。
https://github.com/inuyaksa/jquery.nicescroll/wiki/Native-scroll-vs-Hardware-accelerated-one
私のコンピュータでは、「HW アクセラレーション」バージョンの方がスクロールがスムーズであることが定性的にわかります。120Hzのモニターを使用しています。これは、2 番目の方法の方が高速で効率的であることを示しています。
次のような HTML 要素の場合
<div id="a" style="overflow-y: hidden; height: 100px">
Content <em>which exceeds 100px in height</em>
<img src='lolcat.png' alt='lolcat'/>
</div>
3D ハードウェア アクセラレーション レイアウトを実装する簡単な方法は、div の高さ全体がレンダリングされ、この出力が高さ全体のテクスチャとして読み込まれ、実際の div のレンダリングに使用されるテクスチャ座標が明らかになることだと思います。一度に 100px のみ。
私の質問は、scrollTop
プロパティが理論的にこれを行う方法に関連していますが、現時点では、次のように 2 つの要素を使用して、説明した動作を取得する可能性がはるかに高いようです。
<div id="a" style="overflow-y: hidden; height: 100px; position: relative">
<div style="position: relative">
Content <em>which exceeds 100px in height</em>
<img src='lolcat.png' alt='lolcat'/>
</div>
</div>
scrollTop
のプロパティを設定する代わりにdocument.getElementById('a')
、CCS3-webkit/moz/ms/o-transform
プロパティを対応する負の Y 軸ピクセル値を持つ 3D 値に設定します。
CSS3でスクロールを行う最も効率的な方法は何ですか? 特に、DOM を構造化して、スクロールの最も簡単な実装を取得する可能性を最大限に高めるにはどうすればよいですか (要素をスクロールするときに内部コンテンツの再描画を引き起こさない)。
更新: Chrome 用の非常に優れたスムーズ スクロール プラグインを使用しています。これは、JS を使用してページに scrollTop オフセットを割り当て、スクロール レンダリングを実現しているようです。多くの CPU を使用しなくても、画面のリフレッシュ レート (120Hz) に追いつくことができます。それでも、この種の憶測は非常に非科学的なままです。この時点で私が行っている結論は、ブラウザには、合理的な範囲内で選択したものを高速化する自由があるため、答えはおそらく.