Slidebox

1 febbraio 2016

Un altro elemento molto pratico nelle interfacce utente mobile è la slide box, un contenitore multipagina scorrevole. Ionic implementa questo elemento con la direttiva ion-slide-box, il cui utilizzo di base è mostrato dal seguente markup:

<ion-slide-box>
	<ion-slide>
		<div>
			<h1>La Gioconda</h1>
			<img src="img/gioconda.jpg">
		</div>
	</ion-slide>
	<ion-slide>
		<div>
			<h1>L'urlo</h1>
			<img src="img/urlo.jpg">
		</div>
	</ion-slide>
	<ion-slide>
		<div>
			<h1>Il figlio dell'uomo</h1>
			<img src="figliodelluomo.jpg">
		</div>
	</ion-slide>
</ion-slide-box>

Come possiamo vedere, la struttura della direttiva prevede che ciascuna schermata che compone la slide box sia contenuta all’interno della direttiva ion-slide. Nel nostro esempio abbiamo inserito nelle slide l’immagine di famosi dipinti, che verranno visualizzati come mostrato di seguito:

Con il trascinamento delle dita possiamo far scorrere le immagini avanti e indietro.

È prevista la possibilità di controllare il funzionamento della slide box sfruttando alcuni attributi della direttiva ion-slide-box. Ad esempio, possiamo fare in modo che le slide scorrano automaticamente impostando a true il valore dell’attributo auto-play e impostare il tempo di permanenza di ciascuna slide specificando il numero di millisecondi tramite l’attributo slide-interval.

Possiamo far ripartire da capo lo slide show impostando a true l’attributo does-continue e possiamo indicare se visualizzare o meno il pager sotto il contenuto della slide tramite l’attributo show-pager.

È inoltre possibile eseguire del codice JavaScript in corrispondenza del passaggio da una slide alla successiva sfruttando l’attributo on-slide-changed:

<ion-slide-box on-slide-changed="cambioSlide($index)">

In questo caso, alla funzione di scope invocata possiamo passare l’indice della slide corrente tramite la variabile $index.

Se per la nostra applicazione abbiamo necessità di controllare la navigazione tra le slide da codice, possiamo ricorrere al servizio $ionicSlideBoxDelegate. Ad esempio, se vogliamo che da una slide si passi alla successiva al tap su di essa, possiamo farlo con il seguente codice:

<ion-slide-box>
	<ion-slide>
		<div on-tap="vaiAvanti()">
			<!-- ... -->
		</div>
	</ion-slide>
	
	<!-- ... -->

</ion-slide-box>
// ...

myApp.controller("myController", function($scope, $ionicSlideBoxDelegate) {

	$scope.vaiAvanti = function() {
	
		$ionicSlideBoxDelegate.next();
	};
});

I metodi next() e previous() del servizio $ionicSlideBoxDelegate consentono di andare alla slide successiva e precedente con la possibilità di specificare come parametro opzionale la velocità di transizione in millesimi di secondo.

Il servizio prevede anche la possibilità di posizionarsi su una specifica slide tramite il metodo slide() che prevede come parametro obbligatorio l’indice dalla slide su cui posizionarsi e come parametro opzionale la velocità di transizione in millisecondi. Altri metodi consentono di ottenere l’indice della slide corrente (currentIndex()), il numero totale di slide (slidesCount()) o di fermare e far ripartire la navigazione tra le slide (stop() e start()).

Tutte le lezioni

1 ... 17 18 19 ... 29

Se vuoi aggiornamenti su Slidebox inserisci la tua e-mail nel box qui sotto:
 
X
Se vuoi aggiornamenti su Slidebox

inserisci la tua e-mail nel box qui sotto:

Ho letto e acconsento l'informativa sulla privacy

Acconsento al trattamento di cui al punto 3 dell'informativa sulla privacy