Connaître la hauteur d'une page


OTP
Modérateur
Modérateur
 
Messages: 19375
Inscription: 16 Déc 2005

Connaître la hauteur d'une page

Message le Sam Jan 05, 2008 8:35

Bonjour,

Je souhaite afficher dans une colonne latérale d'une page un ou deux blocs verticaux, plutôt hauts. Je ne veux en mettre qu'un pour les pages dont la hauteur (sans bloc), est inférieure strictement à 2 hauteurs de blocs, et deux pour les cas où la page est haute d'au moins 2 blocs. J'ai donc besoin de savoir la hauteur de la page affichée, sans blocs, pour l'afficher selon les cas avec 1 ou 2 blocs. Est-ce possible de faire ça ?

Merci d'avance,

Michaël


arnaudmn
WRInaute passionné
WRInaute passionné
 
Messages: 1536
Inscription: 11 Mai 2005

Message le Sam Jan 05, 2008 8:55

La hauteur de tes blocs va dépendre de la résolution/taille du navigateur (à moins d'avoir un site a largeur fixe).
Ma solution pour un site :
Tu mets toujours les 2 blocs, avec le 2eme en hidden.
Tu utilises le javascript pour récupérer la hauteur :
if (document.body) iHauteur = (document.body.clientHeight);
else iHauteur = (window.innerHeight);
Tu compare alors cette hauteur avec ton minimum, et si c'est supérieur, tu affiches ton 2eme bloc.


OTP
Modérateur
Modérateur
 
Messages: 19375
Inscription: 16 Déc 2005

Message le Sam Jan 05, 2008 9:04

Si le javascript est désactivé, seul 1 sera affiché ?


arnaudmn
WRInaute passionné
WRInaute passionné
 
Messages: 1536
Inscription: 11 Mai 2005

Message le Sam Jan 05, 2008 9:06

Onthisplanet a écrit:Si le javascript est désactivé, seul 1 sera affiché ?


Oui ... mais si tu penses qu'il le faut, tu l'affiche par défaut :) Ou plutot, faut voir avec la balise <noscript> pour mettre tes blocs par défaut.


OTP
Modérateur
Modérateur
 
Messages: 19375
Inscription: 16 Déc 2005

Message le Sam Jan 05, 2008 13:07

Ok, je vais voir ça. Merci.


Leonick
WRInaute accro
WRInaute accro
 
Messages: 18812
Inscription: 8 Aoû 2004

Message le Sam Jan 05, 2008 14:40

arnaudmn a écrit:Tu utilises le javascript pour récupérer la hauteur :
if (document.body) iHauteur = (document.body.clientHeight);
else iHauteur = (window.innerHeight);
en n'oubliant pas que si on a plusieurs barres d'outils, genre outils webmaster pour nous ou barres de recherches installées avec le navigateur pour le grand public (voir les webmasters aussi), ça réduit d'autant la hauteur utilisable


OTP
Modérateur
Modérateur
 
Messages: 19375
Inscription: 16 Déc 2005

Message le Sam Jan 05, 2008 19:28

Je ne suis pas à ça près. Je veux juste éviter de trop allonger une page inutilement.


MarvinLeRouge
WRInaute impliqué
WRInaute impliqué
 
Messages: 525
Inscription: 1 Sep 2004

Message le Sam Jan 05, 2008 20:28

Salut,

Sauf erreur de ma part, il y a une erreur dans ce raisonnement : si le bloc est présent, même en hidden, sa taille influera sur la hauteur de la page. Pour que ce ne soit pas le cas, il faudrait le mettre en display none.

arnaudmn a écrit:La hauteur de tes blocs va dépendre de la résolution/taille du navigateur (à moins d'avoir un site a largeur fixe).
Ma solution pour un site :
Tu mets toujours les 2 blocs, avec le 2eme en hidden.
Tu utilises le javascript pour récupérer la hauteur :
if (document.body) iHauteur = (document.body.clientHeight);
else iHauteur = (window.innerHeight);
Tu compare alors cette hauteur avec ton minimum, et si c'est supérieur, tu affiches ton 2eme bloc.


arnaudmn
WRInaute passionné
WRInaute passionné
 
Messages: 1536
Inscription: 11 Mai 2005

Message le Dim Jan 06, 2008 8:57

MarvinLeRouge a écrit:Sauf erreur de ma part, il y a une erreur dans ce raisonnement : si le bloc est présent, même en hidden, sa taille influera sur la hauteur de la page. Pour que ce ne soit pas le cas, il faudrait le mettre en display none.


Tout le monde avait compris .... :-)


e-kiwi
Modérateur
Modérateur
 
Messages: 15544
Inscription: 23 Déc 2003

Message le Dim Jan 06, 2008 9:11

euh, cela ne va pas donner la hauteur de la page si il y a barre déroulante, juste la hauteur de la page affichée qui rentre sur l'écran ca, non ?


arnaudmn
WRInaute passionné
WRInaute passionné
 
Messages: 1536
Inscription: 11 Mai 2005

Message le Dim Jan 06, 2008 9:35

e-kiwi a écrit:euh, cela ne va pas donner la hauteur de la page si il y a barre déroulante, juste la hauteur de la page affichée qui rentre sur l'écran ca, non ?


Comme souvent avec le javascript, tout dépend de ce qu'on met dans le doctype.
Voir http://www.quirksmode.org/js/doctypes.html ; et voir l'exemple qui est fourni avec et sans doctype.


Si vous avez aimé cette discussion, partagez-la sur vos réseaux sociaux préférés :

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité