Ускоряется ли положение прокрутки (scrollTop )в браузерах аппаратно?

Мое первоначальное предположение состоит в том, что ответ отрицательный из-за представленных здесь доказательств :

https://github.com/inuyaksa/jquery.nicescroll/wiki/Native-scroll-vs-Hardware-accelerated-one

. Качественно я могу заметить, что версия с «аппаратным ускорением» прокручивается на моем компьютере более плавно. Я запускаю монитор 120 Гц. Это говорит о том, что второй способ быстрее и эффективнее.

Для элемента HTML, такого как

Content which exceeds 100px in height lolcat

Я полагаю, что простой способ реализации макета с аппаратным ускорением 3D заключается в том, что визуализируется полная высота div, а затем этот вывод загружается как текстура полной высоты, а затем координаты текстуры, используемые для рендеринга фактического div, покажут только 100 пикселей за раз.

Мой вопрос связан с тем, как свойство scrollTopдолжно делать это теоретически, но кажется, что в настоящее время гораздо больше шансов получить поведение, которое я описал, используя ДВА элемента, например:

Content which exceeds 100px in height lolcat

Где вместо установки свойства scrollTopдля document.getElementById('a')я установил для свойства CCS3 -webkit/moz/ms/o-transformзначение 3D с соответствующим отрицательным значением оси Y -в пикселях.

Какой самый эффективный способ прокрутки с помощью CSS3? В частности, как я могу структурировать свой DOM, чтобы иметь наилучшие шансы получить самую простую реализацию прокрутки (, не вызывающую повторную -отрисовку внутреннего содержимого при прокрутке элемента )?

Обновление :Я использовал очень хороший плагин плавной прокрутки для Chrome, который, кажется, использует JS для назначения смещения scrollTop на странице для достижения рендеринга прокрутки, что, по-видимому, указывает на то, что если бы это не было аппаратное ускорение, производительность не мог справиться с частотой обновления экрана (120 Гц )без большой загрузки ЦП. Тем не менее, такого рода спекуляции остаются крайне ненаучными.Вывод, к которому я прихожу на данный момент, заключается в том, что браузеры могут свободно ускорять все, что они выбирают, в разумных пределах, поэтому ответ звучит громогласно возможно .

11
задан Steven Lu 19 April 2013 в 21:19
поделиться