Ionic-자바 스크립트 스크롤

ionic 앱에서 스크롤링 조작에 사용되는 요소는 ion-scroll.

스크롤 사용

다음 코드 조각은 스크롤 가능한 컨테이너를 만들고 스크롤 패턴을 조정합니다. 먼저 HTML 요소를 만들고 여기에 속성을 추가합니다. 추가하겠습니다 →direction = "xy"모든면으로 스크롤 할 수 있습니다. 스크롤 요소의 너비와 높이도 설정합니다.

HTML 코드

<ion-scroll zooming = "true" direction = "xy" style = "width: 320px; height: 500px">
   <div class = "scroll-container"></div>
</ion-scroll>

다음으로 세계지도 이미지를 div 우리가 내부에서 만든 ion-scroll 너비와 높이를 설정합니다.

CSS 코드

.scroll-container {
   width: 2600px;
   height: 1000px;
   background: url('../img/world-map.png') no-repeat
}

앱을 실행하면 모든 방향으로지도를 스크롤 할 수 있습니다. 다음 예는지도의 북미 부분을 보여줍니다.

이 맵을 원하는 부분으로 스크롤 할 수 있습니다. 스크롤하여 아시아를 보여 드리겠습니다.

적용 할 수있는 다른 속성이 있습니다. ion-scroll. 다음 표에서 확인할 수 있습니다.

스크롤 속성

속성 유형 세부
방향 스크롤의 가능한 방향. 기본값은y
대리인 핸들 스크롤 식별에 사용 $ionicScrollDelegate.
잠금 부울 한 번에 한 방향으로 스크롤을 잠그는 데 사용됩니다. 기본값은 true입니다.
페이징 부울 스크롤과 함께 페이징을 사용할지 여부를 결정하는 데 사용됩니다.
새로 고침 표현 당겨서 새로 고침 할 때 호출됩니다.
스크롤 할 때 표현 스크롤 할 때 호출됩니다.
스크롤바 -x 부울 가로 스크롤 막대가 표시되어야합니다. 기본값은 true입니다.
스크롤바 -y 수직 스크롤 막대가 표시되어야합니다. 기본값은 true입니다.
확대 부울 핀치 투 줌을 적용하는 데 사용됩니다.
최소 확대 정수 최소 줌 값.
최대 확대 정수 최대 줌 값.
스크롤바 -x 부울 바운싱을 활성화하는 데 사용됩니다. IOS의 기본값은 true, Android의 경우 false입니다.

무한 스크롤

무한 스크롤은 스크롤이 페이지 하단을 통과 할 때 일부 동작을 트리거하는 데 사용됩니다. 다음 예제는 이것이 어떻게 작동하는지 보여줍니다. 컨트롤러에서 목록에 항목을 추가하는 기능을 만들었습니다. 이러한 항목은 스크롤이로드 된 마지막 요소의 10 %를 통과 할 때 추가됩니다. 이것은로드 된 요소 30 개에 도달 할 때까지 계속됩니다. 로딩이 완료 될 때마다on-infinite 방송 할 것이다 scroll.infiniteScrollComplete 행사.

HTML 코드

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

<ion-infinite-scroll ng-if = "!noMoreItemsAvailable" on-infinite = "loadMore()" 
   distance = "10%"></ion-infinite-scroll>

컨트롤러 코드

.controller('MyCtrl', function($scope) {
   $scope.items = [];
   $scope.noMoreItemsAvailable = false;
   
   $scope.loadMore = function() {
      $scope.items.push({ id: $scope.items.length}); 

      if ($scope.items.length == 30) {
         $scope.noMoreItemsAvailable = true;
      }
   
      $scope.$broadcast('scroll.infiniteScrollComplete');
   };
})

다른 속성도 함께 사용할 수 있습니다. ion-infinite-scroll. 그중 일부는 아래 표에 나열되어 있습니다.

스크롤 속성

속성 유형 세부
무한에 표현 맨 아래로 스크롤 할 때 호출해야하는 것.
거리 무한 표현을 트리거하는 데 필요한 바닥으로부터의 거리.
스피너 로드하는 동안 표시되어야하는 스피너
즉시 확인 부울 화면이로드 될 때 'on-infinite'가 호출되어야합니다.

스크롤 델리게이트

Ionic은 스크롤 요소를 완전히 제어 할 수있는 델리게이트를 제공합니다. 주사하여 사용할 수 있습니다.$ionicScrollDelegate 컨트롤러에 서비스를 제공 한 다음 제공하는 방법을 사용합니다.

다음 예제는 20 개 객체의 스크롤 가능한 목록을 보여줍니다.

HTML 코드

<div class = "list">
   <div class = "item">Item 1</div>
   <div class = "item">Item 2</div>
   <div class = "item">Item 3</div>
   <div class = "item">Item 4</div>
   <div class = "item">Item 5</div>
   <div class = "item">Item 6</div>
   <div class = "item">Item 7</div>
   <div class = "item">Item 8</div>
   <div class = "item">Item 9</div>
   <div class = "item">Item 10</div>
   <div class = "item">Item 11</div>
   <div class = "item">Item 12</div>
   <div class = "item">Item 13</div>
   <div class = "item">Item 14</div>
   <div class = "item">Item 15</div>
   <div class = "item">Item 16</div>
   <div class = "item">Item 17</div>
   <div class = "item">Item 18</div>
   <div class = "item">Item 19</div>
   <div class = "item">Item 20</div>
</div>

<button class = "button" ng-click = "scrollTop()">Scroll to Top!</button>

컨트롤러 코드

.controller('DashCtrl', function($scope, $ionicScrollDelegate) {

   $scope.scrollTop = function() {
      $ionicScrollDelegate.scrollTop();
   };
})

위의 코드는 다음 화면을 생성합니다.

버튼을 누르면 스크롤이 맨 위로 이동합니다.

이제 우리는 모든 $ionicScrollDelegate 행동 양식.

위임 방법

방법 매개 변수 유형 세부
scrollTop (매개 변수) shouldAnimate 부울 스크롤은 애니메이션이어야합니다.
scrollBottom (매개 변수) shouldAnimate 부울 스크롤은 애니메이션이어야합니다.
scrollTo (매개 변수 1, 매개 변수 2, 매개 변수 3) 왼쪽, 위쪽, shouldAnimate 숫자, 숫자, 정수 처음 두 매개 변수는 x 및 y 축 오프셋 값을 결정합니다.
scrollBy (매개 변수 1, 매개 변수 2, 매개 변수 3) 왼쪽, 위쪽, shouldAnimate 숫자, 숫자, 정수 처음 두 매개 변수는 x 및 y 축 오프셋 값을 결정합니다.
zoomTo (매개 변수 1, 매개 변수 2, 매개 변수 3, 매개 변수 4) level, animate, originLeft, originTop 숫자, 부울, 숫자, 숫자 level 줌할 레벨을 결정하는 데 사용됩니다. originLeftoriginRight 줌이 발생해야하는 좌표입니다.
zoomBy (매개 변수 1, 매개 변수 2, 매개 변수 3, 매개 변수 4) factor, animate, originLeft, originTop 숫자, 부울, 숫자, 숫자 factor 확대 할 요소를 결정하는 데 사용됩니다. originLeftoriginRight 줌이 발생해야하는 좌표입니다.
getScrollPosition () / / 두 개의 숫자가있는 객체를 속성으로 반환합니다. leftright. 이 숫자는 사용자가 각각 왼쪽과 상단에서 스크롤 한 거리를 나타냅니다.
anchorScroll (parameter1) shouldAnimate 부울 동일한 ID를 가진 요소로 스크롤됩니다. window.loaction.hash. 이 요소가 없으면 맨 위로 스크롤됩니다.
freezeScroll (매개 변수 1) shouldFreeze 부울 특정 스크롤에 대한 스크롤을 비활성화하는 데 사용됩니다.
freezeAllScrolls (parameter1) shouldFreeze 부울 앱의 모든 스크롤에 대해 스크롤을 비활성화하는 데 사용됩니다.
getScrollViews () / 목적 scrollView 객체를 반환합니다.
$ getByHandle (매개 변수 1) 핸들 동일한 핸들로 특정 스크롤 뷰에 메서드를 연결하는 데 사용됩니다. $ionicScrollDelegate. $getByHandle('my-handle').scrollTop();