Turn.js: ottenere un effetto page flip d'impatto

di: Andrea Chiarelli     21 Febbraio 2012

In questo articolo proviamo turn.js. Si tratta di un plugin per jQuery che permette di navigare tra le pagine di un sito come se fossero quelle di una rivista. Effetti di transizione come questi si adattano bene a contenuti come libri o brochure online.

Vediamo come realizzare un esempio simile a questo (provate a sfogliare le pagine):

Dopo aver scaricato il plugin dal repository di GitHub, occorre preparare la pagina HTML per includere le librerie necessarie:

<html>
<head>
	<title>Pagina di test di Turn.js</title>
	<script type="text/javascript" src="js/jquery.js"></script>
	<script type="text/javascript" src="js/turn.min.js"></script>
</head>
<body>
</body>
</html>

Come è evidente dal codice, l'unica dipendenza di turn.js è da jQuery, in particolare a partire dalla versione 1.7 della libreria.

Per definire il contenuto sfogliabile è sufficiente definire un div come contenitore globale e una serie di altri div interni che rappresentano le pagine, come mostrato di seguito:

<div id="magazine">
	<div>Pagina 1 </div>
	<div>Pagina 2 </div>
	<div>Pagina 3 </div>
</div>

Definiamo quindi le dimensioni totali del nostro documento quando entrambe le pagine sono aperte con la seguente regola CSS:

#magazine{
	width:800px;
	height:400px;
}

ed aggiungiamo un'altra regola CSS per definire dimensioni ed aspetto grafico delle singole pagine:

#magazine
.turn-page{
	width:400px;
	height:400px;
	background-color:#ccc;
	border:1px solid #999;
}

La classe turn-page è predefinita in turn.js e viene automaticamente applicata alle pagine del nostro documento.

A questo punto non ci resta che inizializzare il tutto da codice JavaScript:

$().ready(function() {
	$('#magazine').turn();
});

Con questi semplici passaggi abbiamo messo su documento sfogliabile di sicuro impatto grafico.

Sfogliare le pagine da codice

Il plugin prevede la possibilità di gestire il documento e la navigazione tra le pagine direttamente da codice. Così, ad esempio, possiamo creare un documento con effetto sfogliabile posizionandoci direttamente sulla terza pagina con la seguente istruzione di inizializzazione:

$('#magazine').turn({page:3});

oppure possiamo ottenere l'indice della pagina corrente:

alert($('#magazine').turn('page'));

o andare alla pagina successiva o precedente:

$('#magazine').turn('next');
$('#magazine').turn('previous');

Abbiamo a disposizione anche quattro eventi che ci consentono di personalizzare l'effetto:

EventoDescrizione (quando si verifica)
turningprima che inizi l'effetto di voltare la pagina
turneddopo che la pagina è stata voltata
startprima che venga visualizzato l'effetto della pagina sfogliata
enddopo che l'effetto della pagina sfogliata scompare

Gestendo opportunamente questi eventi è possibile ottenere effetti altamente realistici.

Il plugin è pienamente compatibile anche per la visualizzazione su dispositivi mobili ed è in grado di sfruttare l'accelerazione hardware,anche se può avere qualche piccolo problema su alcune schede grafiche.

Link Utili

Guide JavaScript

Guida Node.js

Il framework che permette di per usare V8, l'interprete JavaScript...

Canvas, guida ai framework

Canvas, tra gli elementi di HTML5 è forse quello di maggior impatto....

Guida jQuery UI

Creare siti ricchi e dinamici con jQuery UI, il progetto ufficiale...

Altre guide

Newsletter @JavaScript

Ogni martedì, direttamente nella tua e-mail: guide, articoli, script, novità e approfondimenti tecnici su JavaScript.

Iscriviti alla newsletter

Altre newsletter

Corsi in aula

Corso Webmaster base

18 Giugno 2012 a Milano
Disponibilità: 6 Posti

Corso Google AdWords Base

25 Giugno 2012 a Milano
Disponibilità: 7 Posti

Corso JQuery e Ajax per Webmaster

03 Luglio 2012 a Milano
Disponibilità: 7 Posti

Corso Google AdWords Base

05 Giugno 2012 a Roma
Disponibilità: 7 Posti

Corso Webmaster base

11 Giugno 2012 a Roma
Disponibilità: 7 Posti