Skip to content

PositionManager

Внутреннее дерево отрезков, предоставленное для продвинутых сценариев использования. Хранит высоты строк и отвечает на запросы префиксных сумм за O(log n).

ts
import { PositionManager } from 'vue-virtual-scroller-kit'

const manager = new PositionManager(
  10_000, // число элементов
  50, // единая оценочная высота (либо функция (index) => number)
)

Используйте PositionManager при построении полностью кастомных виртуализированных раскладок, не подходящих под предоставленные компоненты.

Методы

totalSize

Общая высота всех элементов.

getOffset(index)

Пиксельное смещение элемента i = сумма heights [0..i-1].

getHeight(index)

Сохранённая высота элемента i.

findIndex(scrollTop)

Индекс первого элемента, видимого при scrollTop.

set(index, height)

Обновить измеренную высоту, O(log n).

ts
manager.totalSize // общая высота всех элементов
manager.getOffset(index) // пиксельное смещение элемента i = сумма heights[0..i-1]
manager.getHeight(index) // сохранённая высота элемента i
manager.findIndex(scrollTop) // индекс первого элемента, видимого при scrollTop
manager.set(index, height) // обновить измеренную высоту, O(log n)