Barra de desplazamiento de ionic
ion-scroll
ion-scroll se utiliza para crear un contenedor desplazable.
Uso
<ion-scroll [delegate-handle=""] [direction=""] [paging=""] [on-refresh=""] [on-scroll=""] [scrollbar-x=""] [scrollbar-y=""] [zooming=""] [min-zoom=""] [max-zoom=""]> ... </ion-scroll>
API
| Atributos | Tipo | Detalles |
|---|---|---|
|
delegate-handle
(Opcional)
|
cadena
|
Este identificador se utiliza |
|
direction
(Opcional)
|
cadena
|
Dirección del desplazamiento. 'x' o 'y'. Por defecto 'y'. |
|
paging
(Opcional)
|
booleano
|
Si el desplazamiento es por páginas. |
|
on-refresh
(Opcional)
|
expresión
|
Llamar a la actualización desplegable, activada por |
|
on-scroll
(Opcional)
|
expresión
|
Se dispara cuando el usuario se desplaza. |
|
scrollbar-x
(Opcional)
|
booleano
|
Si se muestra la barra de desplazamiento horizontal. Por defecto es false. |
|
scrollbar-y
(Opcional)
|
booleano
|
Si se muestra la barra de desplazamiento vertical. Por defecto es true. |
|
zooming
(Opcional)
|
booleano
|
Si se admite el zoom con dos dedos. |
|
min-zoom
(Opcional)
|
entero
|
Cantidad mínima de zoom permitida (por defecto 0.5) |
|
max-zoom
(Opcional)
|
entero
|
Cantidad máxima de zoom permitida (por defecto 3) |
Ejemplo
Código HTML
<ion-scroll zooming="true" direction="xy" style="width: 500px; height: 500px">
<div style="width: 5000px; height: 5000px; background: url('http://www.example.com/try/demo_source/Europe_geological_map-en.jpg') repeat"></div>
</ion-scroll>
Código CSS
body {
cursor: url('http://www.example.com/try/demo_source/finger.png'), auto;
}
Código JavaScript
angular.module('ionicApp', ['ionic']);
ion-infinite-scroll
Cuando el usuario llega al pie de página o cerca de él, la directiva ionInfiniteScroll te permite llamar a una función.
Cuando la distancia de desplazamiento del usuario supera el contenido inferior, se activa el on-infinite que hayas especificado.
Uso
<ion-content ng-controller="MyController">
<ion-infinite-scroll
on-infinite="loadMore()"
distance="1%">
</ion-infinite-scroll>
</ion-content>
function MyController($scope, $http) {
$scope.items = [];
$scope.loadMore = function() {
$http.get('/more-items').success(function(items) {
useItems(items);
$scope.$broadcast('scroll.infiniteScrollComplete');
});
};
$scope.$on('stateChangeSuccess', function() {
$scope.loadMore();
});
}
Cuando no hay más datos que cargar, se puede usar un método sencillo para detener el desplazamiento infinito: la directiva ng-if de Angular.
<ion-infinite-scroll ng-if="moreDataCanBeLoaded()" icon="ion-loading-c" on-infinite="loadMoreData()"> </ion-infinite-scroll>
API
| Atributos | Tipo | Detalles |
|---|---|---|
| on-infinite |
expresión
|
Evento que se dispara al desplazarse hasta el final. |
|
distance
(Opcional)
|
cadena
|
Distancia desde la parte inferior hasta que se dispara la expresión on-infinite. Por defecto: 1%. |
|
icon
(Opcional)
|
cadena
|
Icono que se muestra mientras se carga. Por defecto: 'ion-loading-d'. |
$ionicScrollDelegate
Autoriza el control de las vistas de desplazamiento (creadas mediante las directivas ion-content e ion-scroll).
Este método se activa directamente mediante el servicio $ionicScrollDelegate para controlar todas las vistas de desplazamiento. Utiliza el método $getByHandle para controlar una vista de desplazamiento específica.
Uso
<body ng-controller="MainCtrl">
<ion-content>
<button ng-click="scrollTop()">滚动到顶部!</button>
</ion-content>
</body>
function MainCtrl($scope, $ionicScrollDelegate) {
$scope.scrollTop = function() {
$ionicScrollDelegate.scrollTop();
};
}
Métodos
resize()
Indica a la vista de desplazamiento que vuelva a calcular el tamaño de su contenedor.
scrollTop([shouldAnimate])
| Parámetros | Tipo | Detalles |
|---|---|---|
|
shouldAnimate
(Opcional)
|
booleano
|
Si se aplica la animación de desplazamiento. |
scrollBottom([shouldAnimate])
| Parámetros | Tipo | Detalles |
|---|---|---|
|
shouldAnimate
(Opcional)
|
booleano
|
Si se aplica la animación de desplazamiento. |