API
Référence de l’API publique exportée par @rdlabo/ngx-cdk-scroll-strategies v22.0.3.
Directive
directive CdkDynamicSizeVirtualScroll
Installe la stratégie de tailles dynamiques sur un viewport de défilement virtuel CDK.
| Entrée | Type | Description | Valeur par défaut |
|---|---|---|---|
itemDynamicSizes |
itemDynamicSize[] |
Modèle exact de tailles des éléments de la liste. | [] |
minBufferPx |
number |
Tampon restant minimal avant le rendu de nouveaux éléments. | 100 |
maxBufferPx |
number |
Tampon cible rendu lors du réapprovisionnement. | 200 |
isReverse |
boolean |
Active le défilement virtuel inversé. | false |
scrollOffset |
number |
Décalage normalisé en lecture seule pour le défilement inversé. |
Classes
class DynamicSizeVirtualScrollStrategy
Implémente VirtualScrollStrategy d’Angular CDK pour les tailles d’éléments connues à l’avance.
| Membre | Type | Description |
|---|---|---|
constructor |
(itemSize, minBufferPx, maxBufferPx, isReverse) |
Crée la stratégie avec son modèle de tailles et ses limites de tampon. |
updateItemAndBufferSize |
(itemDynamicSize[], number, number, boolean) => void |
Remplace le modèle de tailles et la configuration du tampon. |
scrollToIndex |
(index: number, behavior: ScrollBehavior) => void |
Fait défiler jusqu’à un index d’élément. |
scrolledIndexChange |
Observable<number> |
Émet l’index courant du défilement. |
measureScrollOffset |
number |
Dernier décalage de défilement normalisé. |
class DynamicSizeVirtualScrollService
Fournit des utilitaires de cycle de vie du viewport, de liaison des hauteurs, d’actualisation et de défilement fluide.
| Membre | Type | Description |
|---|---|---|
onInit |
(viewport, latestScrollOffset) => void |
Restaure l’état du viewport. |
onDestroy |
(viewport) => number |
Capture le décalage pour une restauration ultérieure. |
getBindDynamicItemHeight |
(sizes: Signal<itemDynamicSize[]>) => Signal<string[]> |
Convertit les tailles des éléments en hauteurs CSS. |
refreshViewport |
(viewport) => void |
Force l’actualisation des dimensions du viewport. |
scrollToTopSmooth |
(viewport) => Promise<void> |
Fait défiler fluidement jusqu’en haut. |
scrollToPoint |
(viewport, x, y, duration?) => Promise<void> |
Fait défiler fluidement jusqu’à un point. |
Fonctions
function sumItemSize
(dynamicSize: itemDynamicSize[], endIndex: number) => number
Renvoie la taille cumulée de tous les éléments précédant endIndex.
function calculateItemCountForPixelDistance
(dynamicSize: itemDynamicSize[], itemSizeRange: number, startIndex?: number, isReverse?: boolean) => number
Convertit une distance en pixels en un nombre fractionnaire exact d’éléments.
function calcIndex
(dynamicSize: itemDynamicSize[], itemSizeRange: number, startIndex?: number, isReverse?: boolean) => number
Calcul de compatibilité avec l’ancienne API. Utilisez calculateItemCountForPixelDistance pour des résultats continus.
Types
interface itemDynamicSize
| Propriété | Type | Description |
|---|---|---|
itemSize |
number |
Taille exacte de l’élément en pixels. |
| métadonnées de l’application | `Record<string, string | number>` |