網站搜尋

javascript - Ionic 滾動到特定的列表項目


有沒有辦法滾動到 ion-list 中的特定項目?

例如在這個 CodePen 中:https://codepen.io/anon/pen/grEBQJ

當我點擊測試按鈕時,我想捲動到帶有文字「Text」的列表項目。

<button ng-click="goTo()">Go to test</button>

<ion-list class="item">Test</ion-list>

我沒有找到任何範例,所以 goTo 就是空白的:

$scope.goTo = function(){

}

答案#1

你必須為列表元素設置一個 id,如下所示:

<ion-item id="item{{item.id}}" ng-repeat="item in items">
      Item {{ item.id }}
</ion-item>

然後,$scope.goTo() 方法必須修改位置哈希,並呼叫 $ionicScrollDelegate 服務的 anchorScroll() 方法:

$scope.goTo = function(id){
     $location.hash('item'+id);
     $ionicScrollDelegate.anchorScroll();
}

請查閱 $ionicScrollDelegate 文件以獲取更多資訊。

用你的 CodePen 更新: https://codepen.io/anon/pen/RadXqL

答案#2

我用 JavaScript 實現了這個功能。在將每個 ion-item 包裝在一個 div 元素中之後,將該 div 元素的 id 傳遞給下面的 JS 函數。

scrollTo(element:string) {

      document.getElementById(element).scrollIntoView();

  }