Trois autres solutions plus génériques
Bonsoir,
Outre les techniques de masquage qui peuvent être obtenues aussi par CSS en utilisant l'attribut : target, plusieurs autres solutions peuvent être utilisées pour déplacer des éléments.
1- Une première solution consiste à permuter le contenu (innerHTML) de containers.
Définir à la conception des containers :
Code:
1 2 3 4 5 6
| <div id="container-1"> <div id="mydiv-1"> ... </div> </div>
<div id="container-2"> <div id="mydiv-2"> ... </div> </div>
<div id="container-3"> <div id="mydiv-3"> ... </div> </div>
<div id="container-4"> <div id="mydiv-4"> ... </div> </div>
...
<div id="container-n> <div id="mydiv-n> ... </div> </div> |
Pour changer l'ordre d'affichage nous écrirons dans un ordre adapté (simple tri et index de permutation), les permutations utiles et optimisées en utilisant dans la pratique des array définissant les permutations utiles.
A titre d'exemple nous permuterons 1 et 2 :
Code:
1 2 3 4
| var Hcontent1 = document.getElementById("container-1").innerHTML;
var Hcontent2 = document.getElementById("container-2").innerHTML;
document.getElementById("container-1").innerHTML=Hcontent2;
document.getElementById("container-2").innerHTML=Hcontent1; |
ou bien
Code:
1 2 3
| var Hcontent_temp = document.getElementById("container-1").innerHTML;
document.getElementById("container-1").innerHTML=document.getElementById("container-2").innerHTML;
document.getElementById("container-2").innerHTML=Hcontent_temp; |
des précautions s'imposent voir https://developer.mozilla.org/fr/doc...ent/innertHTML
2- On peut aussi utiliser les fonctions du DOM pour réassigner les éléments enfants (les div "mydiv-n") aux containers adaptés et générer ainsi une nouvelle organisation de la hiérarchie.
Plus complexe et délicat elle utilisera en fait directement les pointeurs vers les éléments et il sera toujours nécessaire d'utiliser au moins un container caché servant de réservoir tampon pour ne pas perdre des éléments en route.
3- Enfin le clonage peut être encore plus efficace, dans ce cas on cache tous les éléments d'origine et l'on manipule les clones que l'on ajoute comme enfants dans un container rendu visible à la demande.
Cordialement
Trebly