expand:collapse et mise en pages avec des listes
Bonsoir,
j'essaie de mixer le produit de 2 discussions en une seule ; j'ai d'abord essayé mais sans succès.
La première consistait à faire un expand/collapse avec mémorisation du retour arrière :http://www.developpez.net/forums/d13...ere-gt-refresh et la seconde à faire une mise en page propre, à base de liste : http://www.developpez.net/forums/d13...s/#post7475153. Ce que je souhaite maintenant, c'est avoir cette mise en page propre et lui appliquer la fonction expand/collapse ; voici mon essai de code infructueux qui marie les 2 :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92
| <div id="lev0">
<ul class="menu">
<li><a id="lev0Bt" href="#" onclick="expand('lev0','lev0');">lev0</a>
<ul>
<li>lev1
<ul>
<li>lev2</li>
<li>lev2</li>
<li>lev2</li>
<li>lev2</li>
</ul>
</li>
<li>lev1</li>
<li>lev1
<ul>
<li>lev2</li>
<li>lev2</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<div id="lev02">
<ul class="menu">
<li><a id="lev02Bt" href="#" onclick="expand('lev02','lev02');">lev02</a>
<ul>
<li>lev1
<ul>
<li>lev2</li>
<li>lev2</li>
<li>lev2</li>
<li>lev2</li>
</ul>
</li>
<li>lev1</li>
<li>lev1
<ul>
<li>lev2 </li>
<li>lev2</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<div>
<ul class="menu clear">
<li>lev0
<ul>
<li>lev1
<ul>
<li>lev2</li>
<li>lev2</li>
<li>lev2</li>
<li>lev2</li>
</ul>
</li>
<li>lev1</li>
<li>lev1
<ul>
<li>lev2 </li>
<li>lev2</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<div>
<ul class="menu">
<li>lev0
<ul>
<li>lev1
<ul>
<li>lev2</li>
<li>lev2</li>
<li>lev2</li>
<li>lev2</li>
</ul>
</li>
<li>lev1</li>
<li>lev1
<ul>
<li>lev2 </li>
<li>lev2</li>
</ul>
</li>
</ul>
</li>
</ul>
</div> |
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| li{
list-style: none;
}
.menu{
float:left;
}
.clear list-style: none;
}
.menu{
float:left;
}
.clear{
clear:left;
} |
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| <script>
function expand(id,nameitem,expanded){
var Item = document.getElementById(id);
if(expanded=== undefined){
expanded = (Item.offsetWidth == 0) ; //toggle expanded state
}
Item.style.display = expanded ? "block" : "none";
// modification du href et texte du lien
document.getElementById(id+'Bt').href = expanded ? "#"+nameitem : "#";
.
}
function init() {
expand("lev0","lev0", window.location.hash=="#lev0");
expand("lev02","lev02", window.location.hash=="#lev02");
}
</script> |
En gros ce qui se passe : "lev0" n'est pas "collapsé" à l'init ; seulement "lev02" ; de plus, il y a un petit décalage vertical entre "lev0" et "lev02" ; enfin, quand on "collapse" une colonne, son intitulé, qui lui reste visible (ici "lev0" et "lev02") ne devrait pas bouger horizontalement, alors que si je "collapse" "lev0", l'intitulé "lev02"vient se coller à "lev0".