Код Middle Реализация с нуля обновлено
Видимые элементы виртуального списка
Условие
По scrollTop, высоте контейнера, высоте строки и числу строк верни {start, end, offsetY} для рендера с буфером overscan строк.
Что проверяют тесты
начало списка
середина
не выходит за границы
Как подойти
Три величины: первый видимый индекс, количество видимых, буфер. Обязательно зажать в [0, total] и вернуть offsetY - смещение подложки. Это ядро виртуального списка, дальше разговор уходит в измерение динамических высот.
Подсказки: 2
- Первый видимый индекс - floor(scrollTop / rowHeight).
- Сдвиг контейнера равен start * rowHeight, иначе список будет прыгать.
Решите в тренажёре
Редактор с автотестами прямо в браузере. Можно решить спокойно, вслух или под таймером, как на собесе.