MooTools - Fisarmonica
La fisarmonica è il plugin più popolare fornito da MooTools. Aiuta a nascondere e rivelare i dati. Parliamone di più.
Creazione di una nuova fisarmonica
Gli elementi di base che una fisarmonica richiede sono coppie di levette e il loro contenuto. Creiamo coppie di intestazioni e contenuti dell'html.
<h3 class = "togglers">Toggle 1</h3>
<p class = "elements">Here is the content of toggle 1</p>
<h3 class = "togglers">Toggle 2</h3>
<p class = "elements">Here is the content of toggle 2</p>
Dai un'occhiata alla seguente sintassi per capire come costruire una fisarmonica basata sulla struttura HTML di cui sopra.
Sintassi
var toggles = $$('.togglers');
var content = $$('.elements');
var AccordionObject = new Fx.Accordion(toggles, content);
Esempio
Prendiamo un esempio che definisce le funzionalità di base di Accordion. Dai un'occhiata al seguente codice.
<!DOCTYPE html>
<html>
<head>
<style>
.togglers {
padding: 4px 8px;
color: #fff;
cursor: pointer;
list-style: none;
width: 300px;
background-color: #222;
border: 1px solid;
}
</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 toggles = $$('.togglers');
var content = $$('.elements');
var AccordionObject = new Fx.Accordion(toggles, content);
});
</script>
</head>
<body>
<h3 class = "togglers">Toggle 1</h3>
<p class = "elements">Here is the content of toggle 1</p>
<h3 class = "togglers">Toggle 2</h3>
<p class = "elements">Here is the content of toggle 2</p>
<h3 class = "togglers">Toggle 3</h3>
<p class = "elements">Here is the content of toggle 3</p>
</body>
</html>
Riceverai il seguente output:
Produzione
Opzioni di fisarmonica
La fisarmonica offre straordinarie funzionalità. Queste funzionalità aiutano a modificare le opzioni per fornire un output personalizzato.
Schermo
Questa opzione determina quale elemento viene visualizzato al caricamento della pagina. L'impostazione predefinita è 0, quindi viene visualizzato il primo elemento. Per impostare un altro elemento, basta inserire un altro intero che corrisponde al suo indice. A differenza di "mostra", il display passerà all'elemento aperto.
Syntax
var AccordionObject = new Accordion(toggles, content {
display: 0 //default is 0
});
spettacolo
Proprio come "display", show determina quale elemento sarà aperto quando la pagina viene caricata, ma invece di una transizione, "show" farà solo visualizzare il contenuto al caricamento senza alcuna transizione.
Syntax
var AccordionObject = new Accordion(toggles, content {
show: 0 //default is 0
});
altezza
Quando è impostato su true, si verifica un effetto di transizione dell'altezza quando si passa da un elemento visualizzato all'altro. Questa è l'impostazione standard della fisarmonica che vedi sopra.
Syntax
var AccordionObject = new Accordion(toggles, content {
height: true //default is true
});
larghezza
Funziona allo stesso modo del file heightopzione. Tuttavia, invece di modificare l'altezza per mostrare il contenuto, questo aiuta nella transizione della larghezza. Se utilizzi "larghezza" con un'impostazione standard, come abbiamo usato sopra, lo spazio tra l'interruttore del titolo rimarrà lo stesso, in base all'altezza del contenuto. Il div "contenuto" passerà quindi da sinistra a destra per essere visualizzato in quello spazio.
Syntax
var AccordionObject = new Accordion(toggles, content {
width: false //default is false
});
opacità
Questa opzione determina se mostrare o meno un effetto di transizione di opacità quando nascondi o visualizzi alcuni contenuti. Dato che stiamo utilizzando le opzioni predefinite sopra, puoi vedere l'effetto lì.
Syntax
var AccordionObject = new Accordion(toggles, content {
opacity: true //default is true
});
fixedHeight
Per impostare un'altezza fissa, devi correggere un numero intero (ad esempio, potresti mettere 100 per il contenuto alto 100 px). Questo dovrebbe essere usato con una sorta di proprietà di overflow CSS se si prevede di avere un'altezza fissa inferiore all'altezza naturale del contenuto.
Syntax
var AccordionObject = new Accordion(toggles, content {
fixedHeight: false //default is false
});
larghezza fissa
Proprio come "fixedHeight" sopra, questo imposterà la larghezza se assegni a questa opzione un numero intero.
Syntax
var AccordionObject = new Accordion(toggles, content {
fixedWidth: false //default is false
});
sempre nascosto
Questa opzione ti consente di aggiungere un controllo di attivazione / disattivazione ai titoli. Con questo impostato su true, quando fai clic sul titolo di un contenuto aperto, l'elemento di contenuto si chiuderà automaticamente senza aprire nient'altro. Puoi vedere l'esecuzione nel seguente esempio.
Syntax
var AccordionObject = new Accordion(toggles, content {
alwaysHide: false //default is false
});
Eventi di fisarmonica
Questi eventi ti consentono di creare le tue funzionalità per ogni azione di Fisarmonica.
onActive
Questo verrà eseguito quando si apre un elemento. Passerà l'elemento di controllo toggle e l'elemento di contenuto che si sta aprendo e anche i parametri.
Syntax
var AccordionObject = new Accordion(toggles, content {
onActive: function(toggler, element) {
toggler.highlight('#76C83D'); //green
element.highlight('#76C83D');
}
});
onBackground
Viene eseguito quando un elemento inizia a nascondersi e passa tutti gli altri elementi che si stanno chiudendo, ma non si aprono.
Syntax
var AccordionObject = new Accordion(toggles, content {
onBackground: function(toggler, element) {
toggler.highlight('#DC4F4D'); //red
element.highlight('#DC4F4D');
}
});
onComplete
Questo è il tuo evento standard onComplete. Passa una variabile contenente l'elemento di contenuto.
Syntax
var AccordionObject = new Accordion(toggles, content {
onComplete: function(one, two, three, four){
one.highlight('#5D80C8'); //blue
two.highlight('#5D80C8');
three.highlight('#5D80C8');
four.highlight('#5D80C8');
}
});
Metodi di fisarmonica
Questi metodi aiutano a creare e manipolare le sezioni della fisarmonica.
addSection ()
Con questo metodo, puoi aggiungere una sezione (una coppia di elementi di commutazione / contenuto). Funziona come molti degli altri metodi che abbiamo visto. Prima fai riferimento all'oggetto fisarmonica, usa .addSection, quindi puoi chiamare l'id del titolo, l'id del contenuto e infine indicare in quale posizione vuoi che appaia il nuovo contenuto (0 è il primo posto).
Syntax
AccordionObject.addSection('togglersID', 'elementsID', 2);
Note- Quando aggiungi una sezione come questa, anche se verrà visualizzata nel punto dell'indice 2, l'indice effettivo sarà +1 l'ultimo indice. Quindi se hai 5 elementi nel tuo array (0-4) e aggiungi un sesto , il suo indice sarebbe 5 indipendentemente da dove lo aggiungi con .addSection ();
Schermo()
Questo ti permette di aprire un dato elemento. Puoi selezionare l'elemento in base al suo indice (quindi se hai aggiunto una coppia di elementi e desideri visualizzarlo, qui avrai un indice diverso da quello che useresti sopra.
Syntax
AccordionObject.display(5); //would display the newly added element
Example
Il seguente esempio spiega la funzione Accordion con alcuni effetti. Dai un'occhiata al seguente codice.
<!DOCTYPE html>
<html>
<head>
<style>
.togglers {
color: #222;
margin: 0;
padding: 2px 5px;
background: #EC7063;
border-bottom: 1px solid #ddd;
border-right: 1px solid #ddd;
border-top: 1px solid #f5f5f5;
border-left: 1px solid #f5f5f5;
font-size: 15px;
font-weight: normal;
font-family: 'Andale Mono', sans-serif;
}
.ind {
background: #2E86C1;
border-bottom: 1px solid #ddd;
border-right: 1px solid #ddd;
border-top: 1px solid #f5f5f5;
border-left: 1px solid #f5f5f5;
font-size: 20px;
color: aliceblue;
font-weight: normal;
font-family: 'Andale Mono', sans-serif;
width: 200px;
}
</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 toggles = $$('.togglers');
var content = $$('.elements');
var AccordionObject = new Fx.Accordion(toggles, content, {
show: 0,
height : true,
width : false,
opacity: true,
fixedHeight: false,
fixedWidth: false,
alwaysHide: true,
onActive: function(toggler, element) {
toggler.highlight('#DC7633'); //green
element.highlight('#DC7633');
$('active').highlight('#DC7633');
},
onBackground: function(toggler, element) {
toggler.highlight('#AED6F1'); //red
element.highlight('#AED6F1');
$('background').highlight('#F4D03F');
}
});
$('display_section').addEvent('click', function(){
AccordionObject.display(4);
});
});
</script>
</head>
<body>
<div id = "active" class = "ind">onActive</div>
<div id = "background" class = "ind">onBackground</div>
<div id = "accordion_wrap">
<p class = "togglers">Toggle 1: click here</p>
<p class = "elements">Here is the content of toggle 1 Here is the content of
toggle 1 Here is the content of toggle 1 Here is the content of toggle 1 Here
is the content of toggle 1 Here is the content of toggle 1 Here is the content
of toggle 1 Here is the content of toggle 1</p>
<p class = "togglers">Toggle 2: click here</p>
<p class = "elements">Here is the content of toggle 2</p>
<p class = "togglers">Toggle 3: click here</p>
<p class = "elements">Here is the content of toggle 3</p>
<p class = "togglers">Toggle 4: click here</p>
<p class = "elements">Here is the content of toggle 4</p>
</div>
<p>
100
<button id = "display_section" class = "btn btn-primary">
display section
</button>
</p>
</body>
</html>
Output
Fai clic su ciascuna sezione Toggle, quindi troverai i dati nascosti e gli indicatori di evento per ogni azione.