跳至主要內容
版本:v8

ion-infinite-scroll

當使用者從頁面底部或頂部捲動到指定距離時,無限捲動元件會呼叫要執行的動作。

當使用者到達定義的距離時,會呼叫指派給 ionInfinite 事件的表達式。當此表達式完成任何及所有工作後,應呼叫無限捲動實例上的 complete() 方法。

載入文字和旋轉圖示

ion-infinite-scroll-content 負責無限捲動互動的視覺顯示。預設情況下,此元件會根據無限捲動的狀態變更其外觀。它會顯示一個旋轉圖示,該圖示看起來最適合使用者所在的平台。旋轉圖示和載入文字都可以透過在 ion-infinite-scroll-content 元件上設定屬性來自訂。

自訂內容

如果開發人員想要,則分離 ion-infinite-scrollion-infinite-scroll-content 元件可讓他們建立自己的內容元件。此內容可以包含任何項目,從 SVG 元素到具有獨特 CSS 動畫的元素。

與虛擬捲動搭配使用

無限捲動需要捲動容器。當使用虛擬捲動解決方案時,您需要停用 ion-content 上的捲動,並使用 .ion-content-scroll-host 類別目標指示哪個元素容器負責捲動容器。

<ion-content scroll-y="false">
<virtual-scroll-element class="ion-content-scroll-host">
<!-- Your virtual scroll content -->
</virtual-scroll-element>
<ion-infinite-scroll>
<ion-infinite-scroll-content></ion-infinite-scroll-content>
</ion-infinite-scroll>
</ion-content>
注意

virtual-scroll-element 是指負責捲動內容的捲動容器。這可能是您正在使用的虛擬捲動解決方案直接提供的元件。

協助工具

開發人員應將 role="feed" 屬性指派給使用者捲動時新增或移除的可捲動項目清單。

個別清單項目應具有 role="article" 或直接使用 <article> 元素。

例如,當在 ion-list 中呈現項目集合時

<ion-content role="feed">
<ion-list>
<ion-item role="article">
First item
</ion-item>
<ion-item role="article">
Second item
</ion-item>
...
</ion-list>

<ion-infinite-scroll>
<ion-infinite-scroll-content></ion-infinite-scroll-content>
</ion-infinite-scroll>
</ion-content>

如需其他資訊,請參閱 ARIA:feed 角色 文件。

介面

InfiniteScrollCustomEvent

雖然不是必要,但此介面可以用來取代 CustomEvent 介面,以便使用此元件發出的 Ionic 事件進行更強的類型設定。

interface InfiniteScrollCustomEvent extends CustomEvent {
target: HTMLIonInfiniteScrollElement;
}

屬性

disabled

描述如果為 true,則會隱藏無限捲動,並移除捲動事件接聽程式。

當已知沒有更多可以新增的資料,且不再需要無限捲動時,將此設為 true 可以停用無限捲動主動嘗試在捲動時接收新資料。這很有用。
屬性disabled
類型布林值
預設值false

position

描述無限捲動元素的位置。值可以是 topbottom
屬性position
類型"bottom" | "top"
預設值'bottom'

threshold

描述從內容底部捲動時呼叫 infinite 輸出事件的臨界值距離。臨界值可以是百分比或像素。例如,使用 10% 的值,以便在使用者從頁面底部捲動 10% 時呼叫 infinite 輸出事件。當捲動距離頁面底部 100 像素時,請使用值 100px
屬性threshold
類型字串
預設值'15%'

事件

名稱描述泡泡
ionInfinite當捲動到達臨界值距離時發出。從無限處理常式中,當您的非同步操作完成時,您必須呼叫無限捲動的 complete() 方法。true

方法

complete

描述當您的非同步操作完成時,請在 ionInfinite 輸出事件處理常式中呼叫 complete()。例如,當應用程式正在執行非同步操作時,例如從 AJAX 要求接收更多資料,以將更多項目新增至資料清單時,loading 狀態是處於啟用狀態。一旦接收到資料並更新 UI 後,您就會呼叫此方法,以表示載入已完成。此方法會將無限捲動的狀態從 loading 變更為 enabled
簽章complete() => Promise<void>

CSS 陰影部分

此元件沒有可用的 CSS 陰影部分。

CSS 自訂屬性

此元件沒有可用的 CSS 自訂屬性。

插槽

此元件沒有可用的插槽。