Capítulo 13 de 20
The padding example adds virtual content space before and after rows, columns, and a grid. It also uses explicit index attributes and imperative scrolling.
const rowVirtualizer = useVirtualizer({
count: rows.length,
getScrollElement: () => parentRef.current,
estimateSize: () => 50,
paddingStart: 100,
paddingEnd: 100,
})
<div style={{ height: `${rowVirtualizer.getTotalSize()}px`, position: 'relative' }}>
{rowVirtualizer.getVirtualItems().map((virtualRow) => (
<div
key={virtualRow.key}
data-index={virtualRow.index}
ref={rowVirtualizer.measureElement}
style={{
position: 'absolute',
transform: `translateY(${virtualRow.start}px)`,
}}
>
Row {virtualRow.index}
</div>
))}
</div>
paddingStart and paddingEnd for virtual content space.horizontal: true.indexAttribute names in the grid.