Introduction
Youve vu Expand / Collapse blocs un peu partout sur Internet! Vous avez toujours voulu savoir comment faire la vôtre? Youll soit surpris de voir combien il est simple - juste quelques lignes de JavaScript vous permet de basculer un bloc de contenu sur votre page web.
Le reste de ce tutoriel suppose une connaissance de base de HTML et JavaScript.
Un bloc bascule simple
Simple expand/collapse block
Commençons par un simple bloc de texte (on pourrait aussi contenir des images et tout autre contenu) que nous souhaitons faire un levier à bascule en mesure de:
<div id="content">
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Nunc fermentum.
</div>
- <div id="content">
- Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Nunc fermentum.
- </div>
Ensuite, nous ajoutons un lien qui permet de basculer le bloc quand on clique dessus:
<a href="#" onclick="toggle('content')">Toggle</a>
Tout ce qui reste est la réelle
toggle fonction. Le
toggle fonction elle-même est assez simple: il faut de l'ID de l'élément à bascule et utilise les CSS
afficher la propriété pour afficher / cacher. Par défaut, la propriété d'affichage est vide. (sauf si spécifié autrement dans les CSS) pour masquer un élément, vous venez de définir
afficher à «none». Le code va comme ceci:
<script type="text/javascript">
function toggle(id) {
var e = document.getElementById(id);
if (e.style.display == '')
e.style.display = 'none';
else
e.style.display = '';
}
</script>
- <script type="text/javascript">
-
- function toggle(id) {
- var e = document.getElementById(id);
-
- if (e.style.display == '')
- e.style.display = 'none';
- else
- e.style.display = '';
- }
-
- </script>
Placez le dessus de 3 fragments de code ensemble et youve a obtenu un travail Expand / bloc de l'effondrement.
Dans l'exemple ci-dessus, le bloc est d'abord visible. Pour avoir le bloc caché par défaut, modifiez simplement la première ligne comme suit:
<div id="content" style="display:none">
Un petit ajout
Avec l'ajout de quelques lignes de plus, vous pouvez alterner entre le texte du lien entre "Expand" et "Collapse" lorsque l'utilisateur clique dessus. Pour ce faire, on passe dans un autre paramètre à
toggle : Une référence au lien qui active l'effet de bascule.
<a href="#" onclick="toggle2('content', this)">Collapse</a>
<script type="text/javascript">
function toggle2(id, link) {
var e = document.getElementById(id);
if (e.style.display == '') {
e.style.display = 'none';
link.innerHTML = 'Expand';
} else {
e.style.display = '';
link.innerHTML = 'Collapse';
}
}
</script>
- <script type="text/javascript">
-
- function toggle2(id, link) {
- var e = document.getElementById(id);
-
- if (e.style.display == '') {
- e.style.display = 'none';
- link.innerHTML = 'Expand';
- } else {
- e.style.display = '';
- link.innerHTML = 'Collapse';
- }
- }
-
- </script>
Arbre de construction des structures
Nested expand/collapse blocks in tree format
Par emboîtement un bloc dans une autre, vous pouvez créer des structures en forme d'arbre où chaque noeud individuelles peuvent être étendues et effondrées. Le code de cette utilise les mêmes
toggle fonction définie ci-dessus, sauf que plusieurs blocs sont imbriqués entre eux:
<ul>
<li>
<a href="#" onclick="toggle('node1')">Item 1</a>
<ul id="node1" style="display:none">
<li>Sub-item 1</li>
<li>
<a href="#" onclick="toggle('node2')">Sub-item 2</a>
<ul id="node2" style="display:none">
<li>Sub-sub-item 1</li>
<li>Sub-sub-item 2</li>
</ul>
</li>
<li>Sub-item 3</li>
</ul>
</li>
<li>
<a href="#" onclick="toggle('node3')">Item 2</a>
<ul id="node3" style="display:none">
<li>Sub-item 1</li>
<li>Sub-item 2</li>
</ul>
</li>
<li>Item 3</li>
</ul>
- <ul>
- <li>
- <a href="#" onclick="toggle('node1')">Item 1</a>
- <ul id="node1" style="display:none">
- <li>Sub-item 1</li>
- <li>
- <a href="#" onclick="toggle('node2')">Sub-item 2</a>
- <ul id="node2" style="display:none">
- <li>Sub-sub-item 1</li>
- <li>Sub-sub-item 2</li>
- </ul>
- </li>
- <li>Sub-item 3</li>
- </ul>
- </li>
- <li>
- <a href="#" onclick="toggle('node3')">Item 2</a>
- <ul id="node3" style="display:none">
- <li>Sub-item 1</li>
- <li>Sub-item 2</li>
- </ul>
- </li>
- <li>Item 3</li>
- </ul>
Conclusion
Well, thats about it! Ses aussi simple que de créer un expand / bloc de l'effondrement. Et vous pouvez utiliser comme bon nombre de ces blocs que vous voulez sur une seule page.
Vous pouvez télécharger l'exemple de code pour ce tutoriel ci-dessous. La pièce jointe contient un seul fichier HTML qui montre l'expansion / bloc de l'effondrement et l'arbre de navigation dans l'action.
toggle.zip
(723 Octets) Téléchargé 6606 fois
Tutorial sample code