Page 1 sur 1

Gérer le Z-index ?

Publié : 16 mars 2004, 17:30
par Bibilefou
Salut !

Comment feriez vous pour récupérer le zindex maximum pour une page ?

J'ai trouvé une fonction qui fait ça mais avec document.all ... Donc pas très correct ... Je n'arrive pas à trouver une méthode pour le passer en DOM ...

Code : Tout sélectionner

function makeOnTop(el) {
  var daiz;
  var max = 0;
  da = document.all;
  for (i=0; i<da.length; i++) {
    daiz = da[i].style.zIndex;
  if (daiz != "" && daiz > max)
  max = daiz;
  }
  el.style.zIndex = max + 1;
}
J'aimerais pouvoir faire une maximisation de la taille d'un calque sans faire bouger ceux qui sont à côté. Donc jouer sur le z-index mais impossible de récupérer cette foutue valeur de z-index maximum ...
Enfin je pense qu'il faut jouer là-dessus. Mes calques sont flottants à gauche.

Pour voir en live :
[...]

Ah oui ! Sous IE 6, mes calques bougent lorsque l'on passe sur un lien. ça bouge d'un pixel et le résultat est .... agaçant .... ;)


Edit : pour les calques qui bougent sous IE, ça à l'air d'être réglé ... Magie .... ;)

Message envoyé avec : Mozilla/5.0 (X11; U; Linux i686; fr; rv:1.8.1.9) Gecko/20071025 Firefox/2.0.0.9

Publié : 16 mars 2004, 19:25
par Benoit
Essaie :

Code : Tout sélectionner

da = document.getElementsByTagName("*");

Publié : 16 mars 2004, 21:56
par Bibilefou
ok merci. en fait, ça sert à rien ce script .... ;-)

Publié : 16 mars 2004, 23:31
par Bibilefou
Dis moi Benoit, c'est intéressant ton sélecteur (marche pas à tous les coups mais intéressant.

Y'a t'il un moyen de faire dans le même genre, document.getElementsById("calque*") ?

Publié : 17 mars 2004, 00:40
par Bibilefou
bon et bien ça marche pas aussi facilement que ça ...
Maintenant ça fonctionne.

Par contre, y'a moyen d'éviter le déplacement des calques quand un est affiché complètement ?

Publié : 17 mars 2004, 07:11
par Benoit

problème z-index également

Publié : 22 mars 2004, 14:25
par merlin84
On dirait que le plan z-order n'est pas bien géré sur mozilla. Par exemple, s'il y a une table avec 2 cases, sur la cellule de gauche, une image et un texte. Maintenant, je veux que cette image soit affichée en position absolue et derrière le texte... ça ne marche pas...

Code : Tout sélectionner

<table border="0" cellpadding="0" cellspacing="0" 
style="border-collapse: collapse; font-family: Arial; font-size: 8pt" width="100%"><tr> 
<td width="280" valign="top" align="right"> 
<p><a onclick="javascript:window.location.reload"> 
<img style="position: absolute; left: 0pt; top: 6px;" border="0" src="images/titre.jpg" width="278" height="50"></a> 
<font color="#a00000">TOTO</font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </p> 
</td> 
<td> 
autre cellule 
</td> 
</tr></table> 
On constate que le texte n'apparait pas ; et si on enlève le z-order de l'image, c'est le texte qui est couvert, donc qui n'apparait pas à son tour....

De plus, je n'ai pas très envie de passer sur du javascript alors que ce devrait être simplement géré au niveau du html...

Pourquoi est-ce que ça marche sur IE, et pas sur Mozilla qui est censé être mieux ?

Publié : 22 mars 2004, 14:32
par merlin84
:wink: oups, le composeur me vire z-order des propriétés de style... pfff...

donc, dans ma source, (indiquez une image non transparente pour les tests) et surtout "z-order:-1" dans le style... normalement, c'est censé fonctionne...

enfin... pas sur mozilla en apparence... snif

Publié : 22 mars 2004, 15:10
par Benoit
Rassure-toi, c'est tout à fait normal, z-order n'existe pas en CSS :)

Je pense que ce que tu cherches c'est z-index.

z-index ! :roll:

Publié : 23 mars 2004, 11:25
par merlin84
ca ne marche pas non plus avec z-index, pas de solution donc à ce que je comprends... est-ce encore une carrence de moz et doit-je retourner à IE ?

Re: z-index ! :roll:

Publié : 23 mars 2004, 12:19
par bobo
merlin84 a écrit :ca ne marche pas non plus avec z-index, pas de solution donc à ce que je comprends... est-ce encore une carrence de moz et doit-je retourner à IE ?
Le problème avec le z-index: -1 utilisé comme ça, c'est que tu positionnes ton image derrière toute la page. Donc derrière le <body> qui a un fond opaque... Pourquoi IE l'affiche quand même, mystère, peut-être qu'il considère que le body a un z-index inférieur à tout le monde, ou alors est-ce encore un truc plus compliqué (il faut s'attendre à tout avec une interprétation erronée).
Enfin bref, pour t'en sortir comme tu veux, il faut faire différemment. Je n'ai pas trop le temps de chercher, mais il me semble que si tu mets l'élément <a> en position: relative, ça devrait être mieux. Sinon tu peux mettre ton <font> (pas bien les <font>) en postion: relative. il pourra avoir un z-index dans ce cas, et il gardera son emplacement normal (ne pas toucher au left, top, etc...)

Publié : 23 mars 2004, 22:38
par merlin84
merci je vais essayer dans ce sens