import {ScrollingModule} from '@angular/cdk/scrolling';
ScrollDispatcher
本服务包含所有已注册的可滚动对象的引用,并在任何一个可滚动对象的引用发出滚动事件时触发事件。
| 名称 | 描述 |
|---|---|
|
所有可滚动对象引用的映射表,由可滚动对象及其对滚动事件的订阅组成。 |
| ancestorScrolled | |
|---|---|
|
返回一个可观察对象,它只在元素的任何可滚动祖先发生滚动时才会触发。 |
|
| 参数 | |
|
elementOrElementRef HTMLElement | ElementRef<any>
|
祖先要监听的元素。 |
|
auditTimeInMs ? number
|
要对滚动事件进行限流的毫秒数。 |
| 返回值 | |
Observable<CdkScrollable | void>
|
|
| deregister | |
|---|---|
|
注销一个可滚动对象的引用,并从它的 scroll 事件的可观察对象中取消订阅。 |
|
| 参数 | |
|
scrollable CdkScrollable
|
要注销的可滚动实例。 |
| getAncestorScrollContainers | |
|---|---|
|
返回所有包含所指定元素的已注册可滚动对象。 |
|
| 参数 | |
|
elementOrElementRef HTMLElement | ElementRef<any>
|
|
| 返回值 | |
CdkScrollable[]
|
|
| register | |
|---|---|
|
使用该服务注册一个可滚动的实例,并侦听其滚动的事件。当可滚动对象发生滚动时,此服务会把事件发送到记录其滚动的可观察对象中。 |
|
| 参数 | |
|
scrollable CdkScrollable
|
要注册的可滚动对象实例。 |
| scrolled | |
|---|---|
|
返回一个可观察对象,它会在任何已注册的可滚动对象引用(或 window, document, body)中发生滚动事件时发出一个事件。可以提供一个毫秒数来来改写默认的“限流”时间。 注意:为了避免每次滚动事件都发生变更检测,从这个流发出的所有事件都会在 Angular Zone 之外运行。如果你要在滚动事件中更新任何数据绑定,就必须使用 |
|
| 参数 | |
|
auditTimeInMs number = DEFAULT_SCROLL_TIME
|
|
| 返回值 | |
Observable<CdkScrollable | void>
|
|
CdkScrollable
该指令的元素发生滚动时发送一个事件。使用 ScrollDispatcher 服务注册自己,以便把自己包含在滚动事件集合中,并通过该服务来监听。
选择器: [cdk-scrollable] [cdkScrollable]
| 名称 | 描述 |
|---|---|
|
|
|
|
|
|
|
| elementScrolled | |
|---|---|
|
返回在宿主元素上发生 scroll 事件时会触发的可观察对象。 |
|
| 返回值 | |
Observable<Event>
|
|
| getElementRef | |
|---|---|
|
获取视口的 ElementRef。 |
|
| 返回值 | |
ElementRef<HTMLElement>
|
|
| measureScrollOffset | |
|---|---|
|
测量相对于视口指定边缘的滚动偏移量。这个方法可以用来代替对 scrollLeft 或 scrollTop 的直接检查,因为各浏览器对于 scrollLeft 在 RTL 中的理解并不一致。 该方法返回的值是标准化的,左右都总是指向滚动容器的左侧和右侧,与布局方向无关。start 和 end 在 LTR 上下文中指向左右,在 RTL 上下文则相反。 |
|
| 参数 | |
|
from "top" | "bottom" | "start" | "end" | "left" | "right"
|
要测量的边缘。 |
| 返回值 | |
number
|
|
| scrollTo | |
|---|---|
|
滚动到指定的偏移量。这是浏览器原生 scrollTo 方法的标准化版本,因为各个浏览器对于 scrollLeft 在 RTL 中的理解并不一致。 对于此方法,无论布局方向如何,左右都总是指向滚动容器的左侧和右侧。start 和 end 在 LTR 上下文中分别指向左右,在 RTL 上下文中则相反。 |
|
| 参数 | |
|
options ExtendedScrollToOptions
|
指定要滚动到的偏移量。 |
CdkFixedSizeVirtualScroll
支持固定大小的虚拟滚动策略。
选择器: cdk-virtual-scroll-viewport[itemSize]
| 名称 | 描述 |
|---|---|
@Input()
|
列表中条目的大小(以像素为单位)。 |
@Input()
|
渲染新条目时要渲染的缓冲区的像素数。默认为 200px。 |
@Input()
|
缓存在视口之外的最小缓冲区数(以像素为单位)。当缓冲区的数量低于这个数时,就会渲染出更多的条目。默认为 100px。 |
CdkVirtualForOf
类似于 ngForOf 的指令,用于渲染虚拟滚动容器中的数据。
选择器: [cdkVirtualFor][cdkVirtualForOf]
| 名称 | 描述 |
|---|---|
@Input()
|
要显示的 DataSource。 |
@Input()
|
用来生成新元素的模板。 |
@Input()
|
缓存的大小,用于存放那些以前没有用过的模板。如果将缓存大小设置为 |
@Input()
|
|
|
只要当前 DataSource 中的数据发生变化,就会发出通知。 |
|
当渲染的数据视图发生变化时触发。 |
| measureRangeSize | |
|---|---|
|
测量指定范围内所有条目的组合大小(水平方向的宽度,垂直方向的高度)。如果该范围包含当前尚未渲染过的条目,则会引发错误。 |
|
| 参数 | |
|
range ListRange
|
|
|
orientation "vertical" | "horizontal"
|
|
| 返回值 | |
number
|
|
CdkVirtualScrollViewport
extends CdkVirtualScrollable 借助 CdkVirtualForOf 虚拟化滚动行为的视口。
选择器: cdk-virtual-scroll-viewport
| 名称 | 描述 |
|---|---|
@Input({ transform: booleanAttribute })
|
滚动出视图后,渲染的条目是否应该保留在 DOM 中。默认情况下,条目将被删除。 |
@Input()
|
视口滚动的方向。 |
@Output()
|
当视口中可见的第一个元素的索引发生变化时触发。 |
|
|
|
每当渲染范围发生变化时都会发出通知的流。 |
|
| attach | |
|---|---|
|
把 |
|
| 参数 | |
|
forOf CdkVirtualScrollRepeater<any>
|
|
| checkViewportSize | |
|---|---|
|
更新视口规格并重新渲染。 |
| detach | |
|---|---|
|
拆除当前的 |
| elementScrolled | |
|---|---|
|
返回在宿主元素上发生 scroll 事件时会触发的可观察对象。 |
|
| 返回值 | |
Observable<Event>
|
|
| getDataLength | |
|---|---|
|
获取绑定到该视口的数据的长度(以条目数表示)。 |
|
| 返回值 | |
number
|
|
| getElementRef | |
|---|---|
|
获取视口的 ElementRef。 |
|
| 返回值 | |
ElementRef<HTMLElement>
|
|
| getOffsetToRenderedContentStart | |
|---|---|
|
获取从视口起点到渲染数据起始位置的偏移量(以像素为单位)。 |
|
| 返回值 | |
number | null
|
|
| getRenderedRange | |
|---|---|
|
获取当前渲染的条目范围。 |
|
| 返回值 | |
ListRange
|
|
| getViewportSize | |
|---|---|
|
获取视口的大小(以像素为单位)。 |
|
| 返回值 | |
number
|
|
| measureBoundingClientRectWithScrollOffset | |
|---|---|
| 参数 | |
|
from "top" | "bottom" | "left" | "right"
|
|
| 返回值 | |
number
|
|
| measureRangeSize | |
|---|---|
|
测量指定范围的总组合大小。如果该范围包含未渲染的条目,则抛出此异常。 |
|
| 参数 | |
|
range ListRange
|
|
| 返回值 | |
number
|
|
| measureRenderedContentSize | |
|---|---|
|
测量所有渲染条目的组合大小。 |
|
| 返回值 | |
number
|
|
| measureScrollOffset | |
|---|---|
|
从可滚动区的开头得到当前的滚动偏移量(以像素为单位)。 |
|
| 参数 | |
|
from ? "top" | "bottom" | "start" | "end" | "left" | "right"
|
测量到边缘的偏移。在垂直模式下默认为 “top”,在水平模式下默认为 “start”。 |
| 返回值 | |
number
|
|
| measureViewportOffset | |
|---|---|
|
测量视口相对于滚动容器的偏移量 |
|
| 参数 | |
|
from ? "top" | "bottom" | "start" | "end" | "left" | "right"
|
要测量的边缘。 |
| measureViewportSize | |
|---|---|
|
测量给定方向的视口大小。 |
|
| 参数 | |
|
orientation "vertical" | "horizontal"
|
测量尺寸的方向。 |
| scrollTo | |
|---|---|
|
滚动到指定的偏移量。这是浏览器原生 scrollTo 方法的标准化版本,因为各个浏览器对于 scrollLeft 在 RTL 中的理解并不一致。 对于此方法,无论布局方向如何,左右都总是指向滚动容器的左侧和右侧。start 和 end 在 LTR 上下文中分别指向左右,在 RTL 上下文中则相反。 |
|
| 参数 | |
|
options ExtendedScrollToOptions
|
指定要滚动到的偏移量。 |
| scrollToIndex | |
|---|---|
|
滚动到指定索引处的偏移量。 |
|
| 参数 | |
|
index number
|
要滚动的元素的索引。 |
|
behavior ScrollBehavior = 'auto'
|
滚动时要使用的 ScrollBehavior。行为默认是 |
| scrollToOffset | |
|---|---|
|
从视口开始处滚动到指定的偏移量。请注意,这并不会总是与设置 |
|
| 参数 | |
|
offset number
|
要滚动到的偏移量。 |
|
behavior ScrollBehavior = 'auto'
|
滚动时要使用的 ScrollBehavior。行为默认是 |
| setRenderedContentOffset | |
|---|---|
|
设置从视口起点到渲染数据起点或终点的偏移量(以像素为单位)。 |
|
| 参数 | |
|
offset number
|
|
|
to "to-start" | "to-end" = 'to-start'
|
|
| setRenderedRange | |
|---|---|
|
设置当前渲染的索引范围。 |
|
| 参数 | |
|
range ListRange
|
|
| setTotalContentSize | |
|---|---|
|
设置所有内容的总大小(以像素为单位),包括当前未渲染的内容。 |
|
| 参数 | |
|
size number
|
|
CdkVirtualScrollableElement
extends CdkVirtualScrollable 为附着到的元素提供一个虚拟可滚动。
选择器: [cdkVirtualScrollingElement]
| elementScrolled | |
|---|---|
|
返回在宿主元素上发生 scroll 事件时会触发的可观察对象。 |
|
| 返回值 | |
Observable<Event>
|
|
| getElementRef | |
|---|---|
|
获取视口的 ElementRef。 |
|
| 返回值 | |
ElementRef<HTMLElement>
|
|
| measureBoundingClientRectWithScrollOffset | |
|---|---|
| 参数 | |
|
from "top" | "bottom" | "left" | "right"
|
|
| 返回值 | |
number
|
|
| measureScrollOffset | |
|---|---|
|
测量相对于视口指定边缘的滚动偏移量。这个方法可以用来代替对 scrollLeft 或 scrollTop 的直接检查,因为各浏览器对于 scrollLeft 在 RTL 中的理解并不一致。 该方法返回的值是标准化的,左右都总是指向滚动容器的左侧和右侧,与布局方向无关。start 和 end 在 LTR 上下文中指向左右,在 RTL 上下文则相反。 |
|
| 参数 | |
|
from "top" | "bottom" | "start" | "end" | "left" | "right"
|
要测量的边缘。 |
| 返回值 | |
number
|
|
| measureViewportSize | |
|---|---|
|
测量给定方向的视口大小。 |
|
| 参数 | |
|
orientation "vertical" | "horizontal"
|
测量尺寸的方向。 |
| scrollTo | |
|---|---|
|
滚动到指定的偏移量。这是浏览器原生 scrollTo 方法的标准化版本,因为各个浏览器对于 scrollLeft 在 RTL 中的理解并不一致。 对于此方法,无论布局方向如何,左右都总是指向滚动容器的左侧和右侧。start 和 end 在 LTR 上下文中分别指向左右,在 RTL 上下文中则相反。 |
|
| 参数 | |
|
options ExtendedScrollToOptions
|
指定要滚动到的偏移量。 |
CdkVirtualScrollableWindow
继承自 CdkVirtualScrollable 为全局/窗口滚动条提供虚拟可滚动。
选择器: cdk-virtual-scroll-viewport[scrollWindow]
| elementScrolled | |
|---|---|
|
返回在宿主元素上发生 scroll 事件时会触发的可观察对象。 |
|
| 返回值 | |
Observable<Event>
|
|
| getElementRef | |
|---|---|
|
获取视口的 ElementRef。 |
|
| 返回值 | |
ElementRef<HTMLElement>
|
|
| measureBoundingClientRectWithScrollOffset | |
|---|---|
| 参数 | |
|
from "top" | "bottom" | "left" | "right"
|
|
| 返回值 | |
number
|
|
| measureScrollOffset | |
|---|---|
|
测量相对于视口指定边缘的滚动偏移量。这个方法可以用来代替对 scrollLeft 或 scrollTop 的直接检查,因为各浏览器对于 scrollLeft 在 RTL 中的理解并不一致。 该方法返回的值是标准化的,左右都总是指向滚动容器的左侧和右侧,与布局方向无关。start 和 end 在 LTR 上下文中指向左右,在 RTL 上下文则相反。 |
|
| 参数 | |
|
from "top" | "bottom" | "start" | "end" | "left" | "right"
|
要测量的边缘。 |
| 返回值 | |
number
|
|
| measureViewportSize | |
|---|---|
|
测量给定方向的视口大小。 |
|
| 参数 | |
|
orientation "vertical" | "horizontal"
|
测量尺寸的方向。 |
| scrollTo | |
|---|---|
|
滚动到指定的偏移量。这是浏览器原生 scrollTo 方法的标准化版本,因为各个浏览器对于 scrollLeft 在 RTL 中的理解并不一致。 对于此方法,无论布局方向如何,左右都总是指向滚动容器的左侧和右侧。start 和 end 在 LTR 上下文中分别指向左右,在 RTL 上下文中则相反。 |
|
| 参数 | |
|
options ExtendedScrollToOptions
|
指定要滚动到的偏移量。 |
FixedSizeVirtualScrollStrategy
具有固定大小已知条目列表的虚拟滚动策略。
| attach | |
|---|---|
|
把这个滚动策略附着到视口中。 |
|
| 参数 | |
|
viewport CdkVirtualScrollViewport
|
要把此策略附着到的视口。 |
| detach | |
|---|---|
|
这个滚动策略是从当前连接的视口中拆除出来的。 |
| scrollToIndex | |
|---|---|
|
滚动到指定索引的偏移量。 |
|
| 参数 | |
|
index number
|
要滚动的元素的索引。 |
|
behavior ScrollBehavior
|
滚动时要使用的 ScrollBehavior。 |
| updateItemAndBufferSize | |
|---|---|
|
更新条目大小和缓冲区大小。 |
|
| 参数 | |
|
itemSize number
|
虚拟滚动列表中各条目的大小。 |
|
minBufferPx number
|
在需要渲染更多内容之前,缓冲区的最小量(以像素为单位) |
|
maxBufferPx number
|
渲染时要渲染的缓冲区(以像素为单位)。 |
CdkVirtualScrollable
继承自 CdkScrollable 扩展 {@link CdkScrollable} 以用作虚拟滚动的滚动容器。
| elementScrolled | |
|---|---|
|
返回在宿主元素上发生 scroll 事件时会触发的可观察对象。 |
|
| 返回值 | |
Observable<Event>
|
|
| getElementRef | |
|---|---|
|
获取视口的 ElementRef。 |
|
| 返回值 | |
ElementRef<HTMLElement>
|
|
| measureBoundingClientRectWithScrollOffset | |
|---|---|
|
测量包含滚动偏移量的边界 DOMRect 大小。 |
|
| 参数 | |
|
from "top" | "bottom" | "left" | "right"
|
要测量的边缘。 |
| 返回值 | |
number
|
|
| measureScrollOffset | |
|---|---|
|
测量相对于视口指定边缘的滚动偏移量。这个方法可以用来代替对 scrollLeft 或 scrollTop 的直接检查,因为各浏览器对于 scrollLeft 在 RTL 中的理解并不一致。 该方法返回的值是标准化的,左右都总是指向滚动容器的左侧和右侧,与布局方向无关。start 和 end 在 LTR 上下文中指向左右,在 RTL 上下文则相反。 |
|
| 参数 | |
|
from "top" | "bottom" | "start" | "end" | "left" | "right"
|
要测量的边缘。 |
| 返回值 | |
number
|
|
| measureViewportSize | |
|---|---|
|
测量给定方向的视口大小。 |
|
| 参数 | |
|
orientation "vertical" | "horizontal"
|
测量尺寸的方向。 |
| scrollTo | |
|---|---|
|
滚动到指定的偏移量。这是浏览器原生 scrollTo 方法的标准化版本,因为各个浏览器对于 scrollLeft 在 RTL 中的理解并不一致。 对于此方法,无论布局方向如何,左右都总是指向滚动容器的左侧和右侧。start 和 end 在 LTR 上下文中分别指向左右,在 RTL 上下文中则相反。 |
|
| 参数 | |
|
options ExtendedScrollToOptions
|
指定要滚动到的偏移量。 |
ViewportScrollPosition
在每个方向上保存视口滚动位置的对象。
| 名称 | 描述 |
|---|---|
|
|
|
VirtualScrollStrategy
该策略决定了应该在视口中渲染哪些条目。
| 名称 | 描述 |
|---|---|
|
当视口中可见的第一个元素的索引发生变化时触发。 |
| attach | |
|---|---|
|
把这个滚动策略附着到视口中。 |
|
| 参数 | |
|
viewport CdkVirtualScrollViewport
|
要把此策略附着到的视口。 |
| detach | |
|---|---|
|
这个滚动策略是从当前连接的视口中拆除出来的。 |
| onContentRendered | |
|---|---|
|
当 DOM 中渲染的条目范围发生变化时调用。 |
| onContentScrolled | |
|---|---|
|
在视口发生滚动时调用(使用 requestAnimationFrame 来防抖)。 |
| onDataLengthChanged | |
|---|---|
|
当数据长度发生变化时调用。 |
| onRenderedOffsetChanged | |
|---|---|
|
当渲染条目的偏移量发生变化时调用。 |
| scrollToIndex | |
|---|---|
|
滚动到指定索引的偏移量。 |
|
| 参数 | |
|
index number
|
要滚动的元素的索引。 |
|
behavior ScrollBehavior
|
滚动时要使用的 ScrollBehavior。 |
CdkVirtualScrollRepeater
要被 VirtualScrollViewport 重复的条目
| 名称 | 描述 |
|---|---|
|
| measureRangeSize | |
|---|---|
| 参数 | |
|
range ListRange
|
|
|
orientation "vertical" | "horizontal"
|
|
| 返回值 | |
number
|
|
ExtendedScrollToOptions
ScrollToOptions 的扩展版本,允许表达相对于视口顶部、底部、左侧、右侧、开头或结尾的滚动偏移量,而不仅仅是顶部和左侧。 请注意:top 和 bottom 属性是互斥的,left 和 right、start 和 end 属性也是如此。
type ExtendedScrollToOptions = _XAxis & _YAxis & ScrollOptions;
CdkVirtualForOfContext
CdkVirtualForOf 渲染的条目的上下文
type CdkVirtualForOfContext = {
$implicit: T;
cdkVirtualForOf: DataSource<T> | Observable<T[]> | NgIterable<T>;
index: number;
count: number;
first: boolean;
last: boolean;
even: boolean;
odd: boolean;
};
DEFAULT_SCROLL_TIME
默认情况下以毫秒为单位的时间来限制滚动事件的频度。
const DEFAULT_SCROLL_TIME: 20;
DEFAULT_RESIZE_TIME
resize 事件的默认节流时间(毫秒数)。
const DEFAULT_RESIZE_TIME: 20;
VIRTUAL_SCROLL_STRATEGY
这个注入令牌用来指定虚拟滚动策略。
const VIRTUAL_SCROLL_STRATEGY: InjectionToken<VirtualScrollStrategy>;
VIRTUAL_SCROLLABLE
const VIRTUAL_SCROLLABLE: InjectionToken<CdkVirtualScrollable>;