Le classi Fx.Tween ed Fx.Morph studiate nella precedente lezione permettono di creare animazioni personalizzate di base, ma non sono le uniche sottoclassi del costruttore Fx. Tra i numerosi plug-in ufficiali, infatti, troviamo le classi Fx.Slide, Fx.Scroll ed Fx.Elements. In questa lezione vedremo come utilizzare le funzionalità offerte da queste ultime e come metterle in pratica.
La classe Fx.Slide, come indica il nome, permette di creare un effetto di "sliding" su di un elemento. Possiamo fare scivolare il nostro elemento in entrata, in uscita oppure a seconda del suo stato tramite la keyword 'toggle'. Vediamo un semplice esempio:
// creiamo l'istanza
var slide = new Fx.Slide('myElement')
// slide "out"
slide.slideOut();
// slide "in"
slide.slideIn();
// slide "toggle"
slide.toggle();
Anche per il costruttore Fx.Slide, cosi come per Fx.Tween ed Fx.Morph, abbiamo a disposizione un metodo della classe Element che funge da shortcut: il metodo slide. Possiamo passare una stringa come argomento per indicare il comportamento dello 'sliding':
// settiamo le opzioni per la nostra istanza
el.set('slide', {duration: 4000, link: 'cancel'});
'slide' hide
el.slide('hide');
'slide' hide
el.slide('in');
'slide' out
el.slide('out');
'slide' toggle
el.slide('toggle');
Ecco la demo che mette in pratica le animazioni di "sliding": premendo sul primo pulsante si azionerà lo "slide out", mentre con il secondo avremo lo "slide toggle".
La classe Fx.Scroll permette di effettuare un effetto di "scrolling" agendo su di un elemento che possiede un "oveflow", ovvero un contenuto nascosto o a scorrimento. Tra gli elementi sulla quale possiamo applicare l'effetto scroll troviamo ovviamente anche l'oggetto window. Ecco un esempio dove applicchiamo l'effetto sull'elemento con id 'myElement':
// creiamo l'istanza
var scroll = new Fx.Scroll('myElement');
// scrolla alle coordinate 20 (x) e 400 (y)
scroll.start(20, 400);
// scrolla l'elemento rispettivamente al suo massimo valore 'top' e 'right'
scroll.toTop();
scroll.toRight();
Un esempio di effetto "scrolling" è in azione in questa demo.
La classe Fx.Elements è leggermente differente da quelle viste finora, dato che, come indica il nome, permette di applicare l'effetto ad una collezione di elementi contemporaneamente. Per azionare l'animazione occorre passare al metodo start un oggetto le cui keywords devono essere rappresentate da numeri in formato stringa, ognuna indicante un determinato elemento (ad esempio, l'elemento con indice '0' sarà la prima ancora della pagina se i nostri elementi sono le seguenti ancore: $$('a')). Al costruttore devono essere passati rispettivamente la collezione di elementi e le opzioni. Vediamone ora la rappresentazione pratica:
// la nostra istanza agirà sui div presenti nell'elemento con id 'main'
var fx = new Fx.Elements($$('#main div'), {
onComplete: function(){
alert('The animation is completed');
}
});
// azioniamo l'effetto
fx.start({
'0': {
'height': [200, 300],
'opacity': [0,1]
},
'1': {
'width': [200, 300],
'color': ['#ff0000', '#ff00ff']
}
});
Se il nostro HTML è formato nel seguente modo:
<div id="main"> <div> first </div> <div> second </div> </div>
al primo div verranno modificati i valori delle proprietà 'height' e 'opacity', mentre al secondo verranno alterate le proprietà 'width' e 'color'.
In questa demo è possibile provare la classe Fx.Elements ed animare una serie di elementi di tipo 'div'.
In questa sezione dedicata agli effetti abbiamo imparato come utilizzare tutti i costrutti che MooTools ci offre per creare animazioni di ultima generazione. Ovviamenteè possibile utilizzare queste classi per creare ulteriori sottoclassi ancora più specifiche, proprio come accade con le numerose classi Fx personalizzate che ho inserito nella libreria moo.rd.
PhantomJS, headless browser per test con JavascriptIl tool ideale per realizzare, da terminale, operazioni in remoto su... |
Creare e leggere QR Code in JavaScriptApplicazioni 'QR Code enabled' per il Web e per il mobile,... |
Jquery UI Map: web-mapping con Google Maps e jQueryUn plugin di jQuery UI per intefacciare applicaizoni Web/mobile con... |
Scrollorama e Scrolldeck, slideshow d'effetto con jQueryPlugin jQuery per ottenere Slideshow con diversi effetti di scrolling |
jCanvas, un primo semplice graficoAlla scoperta della libreria jCanvas, per semplificare il disegno e... |
Guida Node.jsIl framework che permette di per usare V8, l'interprete JavaScript... |
Canvas, guida ai frameworkCanvas, tra gli elementi di HTML5 è forse quello di maggior impatto.... |
Guida Javascript: tecniche avanzateUna guida dal taglio pratico per approfondire la programmazione a... |
Ogni martedì, direttamente nella tua e-mail: guide, articoli, script, novità e approfondimenti tecnici su JavaScript.
Iscriviti alla newsletter
|
|
Corso Webmaster base18 Giugno 2012 a Milano |
|
|
Corso Google AdWords Base25 Giugno 2012 a Milano |
|
|
Corso JQuery e Ajax per Webmaster03 Luglio 2012 a Milano |
|
|
Corso Google AdWords Base05 Giugno 2012 a Roma |
|
|
Corso Webmaster base11 Giugno 2012 a Roma |