MooTools - Fx.Slide
Fx.Slides è un'opzione che ti consente di visualizzare il contenuto facendolo scorrere in vista. È molto semplice ma migliora l'aspetto della tua interfaccia utente.
Parliamo della creazione e inizializzazione di un Fx.Slide, delle sue opzioni e dei suoi metodi.
Innanzitutto, inizializzeremo la classe Fx.Slide con un'istanza definita dall'utente. Per questo, dobbiamo creare e selezionare un elemento HTML. Successivamente, applicheremo CSS a questi elementi. Infine, inizieremo una nuova istanza di Fx.Slide con la nostra variabile elemento.
Opzioni Fx.Slide
Ci sono solo due opzioni Fx.Slide: modalità e wrapper.
Modalità
La modalità offre due scelte, "verticale" o "orizzontale". Rivelazioni verticali dall'alto verso il basso e rivelazioni orizzontali da sinistra a destra. Non ci sono opzioni per andare dal basso verso l'alto o da destra a sinistra, anche se capisco che l'hacking della classe stessa per ottenere ciò è relativamente semplice. A mio parere, è un'opzione che vorrei vedere standard e se qualcuno ha violato la classe per consentire queste opzioni, vi preghiamo di inviarci una nota.
Wrapper
Per impostazione predefinita, Fx.Slide crea un wrapper attorno all'elemento diapositiva, dandogli "overflow": "hidden". Wrapper ti consente di impostare un altro elemento come wrapper. Come ho detto sopra, non sono chiaro su dove questo potrebbe tornare utile e sarei interessato a sentire qualsiasi pensiero (grazie a horseweapon su mooforum.net per avermi aiutato a chiarire questo).
Metodi Fx.Slide
Fx.Slide offre anche molti metodi per mostrare e nascondere il tuo elemento.
slideIn ()
Come suggerisce il nome, questo metodo attiverà l'evento di inizio e rivelerà il tuo elemento.
sfilare()
Riporta il tuo elemento allo stato nascosto.
toggle ()
Questo farà scorrere l'elemento dentro o fuori, a seconda del suo stato corrente. Metodo molto utile per aggiungere agli eventi di clic.
nascondere()
Ciò nasconderà l'elemento senza un effetto diapositiva.
spettacolo()
Questo mostrerà l'elemento senza un effetto diapositiva.
Scorciatoie Fx.Slide
La classe Fx.Slide fornisce anche alcune utili scorciatoie per aggiungere effetti a un elemento.
set ('slide')
Invece di iniziare una nuova classe, puoi creare una nuova istanza se "imposti" la diapositiva su un elemento.
Syntax
slideElement.set('slide');
opzioni di impostazione
Puoi anche impostare le opzioni con la scorciatoia:
Syntax
slideElement.set('slide', {duration: 1250});
diapositiva()
Una volta che la diapositiva è .set (), puoi avviarla con il metodo .slide ().
Syntax
slideElement.slide('in');
.slide accetterà -
- ‘in’
- ‘out’
- ‘toggle’
- ’show’
- ‘hide’
... ciascuno corrispondente ai metodi sopra.
Example
Facciamo un esempio che spieghi Fx.Slide. Dai un'occhiata al codice seguente.
<!DOCTYPE html>
<html>
<head>
<style>
.ind {
width: 200px;
padding: 10px;
background-color: #87AEE1;
font-weight: bold;
border-bottom: 1px solid white;
}
.slide {
margin: 20px 0;
padding: 10px;
width: 200px;
background-color: #F9E79F;
}
#slide_wrap {
padding: 30px;
background-color: #D47000;
}
</style>
<script type = "text/javascript" src = "MooTools-Core-1.6.0.js"></script>
<script type = "text/javascript" src = "MooTools-More-1.6.0.js"></script>
<script type = "text/javascript">
window.addEvent('domready', function() {
var slideElement = $('slideA');
var slideVar = new Fx.Slide(slideElement, {
//Fx.Slide Options
mode: 'horizontal', //default is 'vertical'
//wrapper: this.element, //default is this.element
//Fx Options
link: 'cancel',
transition: 'elastic:out',
duration: 'long',
//Fx Events
onStart: function(){
$('start').highlight("#EBCC22");
},
onCancel: function(){
$('cancel').highlight("#EBCC22");
},
onComplete: function(){
$('complete').highlight("#EBCC22");
}
}).hide().show().hide(); //note, .hide and .show do not fire events
$('openA').addEvent('click', function(){
slideVar.slideIn();
});
$('closeA').addEvent('click', function(){
slideVar.slideOut();
});
//EXAMPLE B
var slideElementB = $('slideB');
var slideVarB = new Fx.Slide(slideElementB, {
//Fx.Slide Options
mode: 'vertical', //default is 'vertical'
link: 'chain',
//Fx Events
onStart: function(){
$('start').highlight("#EBCC22");
},
onCancel: function(){
$('cancel').highlight("#EBCC22");
},
onComplete: function(){
$('complete').highlight("#EBCC22");
}
});
$('openB').addEvent('click', function(){
slideVarB.slideIn();
});
$('closeB').addEvent('click', function(){
slideVarB.slideOut();
});
});
</script>
</head>
<body>
<div id = "start" class = "ind">Start</div>
<div id = "cancel" class = "ind">Cancel</div>
<div id = "complete" class = "ind">Complete</div>
<button id = "openA">open A</button>
<button id = "closeA">close A</button>
<div id = "slideA" class = "slide">Here is some content - A. Notice the delay
before onComplete fires. This is due to the transition effect, the onComplete
will not fire until the slide element stops "elasticing." Also, notice that
if you click back and forth, it will "cancel" the previous call and give the
new one priority.</div>
<button id = "openB">open B</button>
<button id = "closeB">close B</button>
<div id = "slideB" class = "slide">Here is some content - B. Notice how
if you click me multiple times quickly I "chain" the events. This slide is
set up with the option "link: 'chain'"</div>
</body>
</html>
Output
Fare clic sui pulsanti: openA, closeA, openB e closeB. Osservare le modifiche, gli effetti e la notifica degli eventi sugli indicatori.