Probleme clientHeight qui retourne 0

shupakiko Messages postés 3 Date d'inscription vendredi 16 mai 2008 Statut Membre Dernière intervention 29 mai 2008 - 29 mai 2008 à 12:55
PetoleTeam Messages postés 3426 Date d'inscription lundi 26 décembre 2005 Statut Membre Dernière intervention 14 janvier 2011 - 30 mai 2008 à 12:48
Bonjour, 
   
   je crée actuellement un site pour une société et je dois créer un menu glissant sur la gauche de ma page.

   j'ai bien avancé dans mon script mais je bute maintenant sur un probleme tout bête: 

   je dois comparer la hauteur de 2 zones pour savoir si j'effectue mon traitement ou non, mais pour la zone de droite, clientHeight me renvoie toujours 0. 

voici un peu de mon code pour vous aider à comprendre:

<script>
var hauteurContent = document.getElementById('content');

</script>

et

<?php while ($ligne = mysql_fetch_array($result)
            {                                                               ?>
                                       ...
                  

<?php } ?>

si je fais un alert(hauteurContent) j'obtiens toujours 0 !!!

merci par avance de votre aide

moi et les maths, ca fait au moins plus l'infini au carré

7 réponses

cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
29 mai 2008 à 13:25
Bonjour,
    tu devrais obtenir ["object"]... avec ce que tu nous dis.
    mais.. peut-être utilises-tu l'objet avant qu'il n'existe ?
       ( remarque que tu aurais "undefined" à priori... )
    bref.. on n'en a pas aseez... d'infos
    MAIS SURTOUT PAS LE PHP ! un EXTRAIT ( ça aussi surtou )
       de la page résultante !!!!

<hr />                Cordialement            Bul         [mon Site]     [M'écrire]
0
shupakiko Messages postés 3 Date d'inscription vendredi 16 mai 2008 Statut Membre Dernière intervention 29 mai 2008
29 mai 2008 à 14:26
Pardon erreur d'écriture...

var hauteurContent = document.getElementById('content').clientHeight;

mon problème s'arrète au fait que hauteurContent a toujours 0 pour valeur....

montrer plus de code serait superflu

moi et les maths, ca fait au moins plus l'infini au carré
0
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
29 mai 2008 à 14:31
>>montrer plus de code serait superflu
    c'est comme tu le sens, après tout c'est ton code et c'est toi qui pose la question,
       n'est-il pas ?
    mais déjà, tu as fait une ch'tiote modif par rapport au 1er message,
       me trompe-je ?
    que te dire de plus ?   peut-être de regarder le problème des tailles ici ?

<hr />                Cordialement            Bul         [mon Site]     [M'écrire]
0
shupakiko Messages postés 3 Date d'inscription vendredi 16 mai 2008 Statut Membre Dernière intervention 29 mai 2008
29 mai 2008 à 15:21
Pardon pour le premier message mais j'avais simplement oublié de réécrire 'clientHeight' (dans le message hein pas dans mon code)

donc apres quelques tests, la propriété clientHeight marche tres bien sous firefox mais me renvoie 0 pour mon objet dont l'id est 'Content' sous IE7...

Pourtant clientHeight
var hmenu =document.getElementById('menu').clientHeight;
marche tres bien pour ma zone 'menu'

menu et content sonr des div et

_menu contient une table
_content contient plusieurs tables de même structure que celle du menu.

Je ne comprends donc pas pourquoi clientHeight ne veut pas me renvoyer autre chose que 0... IE croirait-il que ma zone 'content' est vide ? mais pourquoi ??? parce que cette zone est générée par php ? pourtant le php s'exécute avant le javascript....

bref je suis perdu et IE commence à me faire une sorte de fussoir

si quelqu'un peut m'aider ca serait super  ^^
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
PetoleTeam Messages postés 3426 Date d'inscription lundi 26 décembre 2005 Statut Membre Dernière intervention 14 janvier 2011 17
29 mai 2008 à 18:01
Bonjour,
essaies avec offsetWidth et offsetHeight
;O)
0
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
30 mai 2008 à 09:42
comme quoi le reste du code n'était pas si superflu que cela !
    tu sais, en général, si on demande un complément d'infos,
    ce n'est pas pour emm....er le monde !
la taille dépend de l'élément, du navigateur....   ce que
       j'ai mémorisé dans le lien fourni, qu tu n'as pas du
       essayer...  ( petoleTeam a sûrement raison ! )
<hr />                Cordialement            Bul         [mon Site]     [M'écrire]
0
PetoleTeam Messages postés 3426 Date d'inscription lundi 26 décembre 2005 Statut Membre Dernière intervention 14 janvier 2011 17
30 mai 2008 à 12:48
Bonjour,
<table bgcolor= "#e6effe" border="0" cellpadding="5" cellspacing="0" width="100%">----, ( petoleTeam a sûrement raison !
)</td>
</td></tr></tbody></table>pour savoir...un
petit exemple de test qui va bien...
<html>
<head>
<style type="text/css">
#D_1
{ height : 1px;} /* hauteur déclarée pour DIV
id='D_1'*/
</style>
</head>


Premier DIV


XXXXXXXXXXXXXXX


Deuxième identique

XXXXXXXXXXXXXXX


<script type="text/javascript">
  var Html = "";
   //-- Test 1er DIV
  var O_Div =
document.getElementById( 'D_1');
  Html = "D_1\n"
  Html += "Offset \t=
" + O_Div.offsetHeight;
  Html += "\nClient \t= " + O_Div.clientHeight;

  alert( Html);
  //-- Test 2eme DIV

  O_Div = document.getElementById( 'D_2');
  Html = "D_2\n"

  Html += "Offset \t= " + O_Div.offsetHeight;
  Html += "\nClient \t= "
+ O_Div.clientHeight;
  alert( Html);
</script>


</html>
Le D_1 est déclaré avec une hauteur de 1px
ce qui suffit à IE pour afficher clientHeight à la bonne valeur...
alors que le
D_2 n'a pas de hauteur déclarée, mettre une hauteur auto reviens au même
que de ne pas en mettre, dans ce cas de figure.

J'ai également été
suppris en son temps !

;O)
0
Rejoignez-nous