IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Position du body absolu sous Mozilla :S


Sujet :

JavaScript

  1. #1
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2005
    Messages
    30
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2005
    Messages : 30
    Par défaut Position du body absolu sous Mozilla :S
    Bonjour à tous, j'ai un problème!

    Bon j'explique, j'ai un piti div sur ma page. Ce que je cherche à faire, c'est capturer dans mon div la position du curseur et l'afficher. Mais je veux que le (0,0) soit sur le coin gauche du div en question.
    Pour se faire, j'ai besoin de calculer la position en X et Y de mon div par rapport à ma page entière.

    J'utilise cette fonction:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    function getLeft(MyObject)
    {
    	if (MyObject.offsetParent)
    		return (MyObject.offsetLeft + getLeft(MyObject.offsetParent));
    	else
    		return (MyObject.offsetLeft);
    }
    Idem pour la position en Y avec offsetTop.


    Ce code marche impecablement sous Mozilla/FF et IE, MAIS (c'est le mais qui fait chier ) Mozilla me retourne une valeur erronée quand le body est positionné en absolu.

    Sur ma page j'applique le style:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    body {
    margin: 0px;
    padding: 0px;
    width: 800px;
    position: absolute;
    left: 50%;
    margin-left: -400px;
    }
    (style batard pour centrer la page sur l'écran ^^)

    _ Quand je fait des tests juste sur la position de ce body, IE me retourne une valeur correcte, mais Mozilla me retourne 0.
    _ Si j'applique le meme style sur un autre element que le body, les deux naviguateurs retournent une valeur correcte.
    _ Si je change le style de positionnement du body en enlevant le positionnement absolu et en mettant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    body {
    margin: 0px;
    padding: 0px;
    width: 800px;
    margin-left: auto;
    margin-right: auto;
    }
    (pour le même effet de centrage de page)
    Les 2 naviguateurs me renvoient la bonne valeur. (mais IE ne reconnait pas le "auto", et ne centre pas la page )


    Please, aidez-moi

    Est-ce qu'il existe un moyen pour calculer cette foutue position du body en absolu? ^^

  2. #2
    Membre Expert
    Avatar de FremyCompany
    Profil pro
    Étudiant
    Inscrit en
    Février 2006
    Messages
    2 532
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2006
    Messages : 2 532
    Par défaut
    Il existe plus simple et plus efficace sur le web...

    Une recherche sur ce forum devrait de donner une idée

  3. #3
    Expert confirmé
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 660
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 660
    Par défaut
    bonjour,

    regarde cette discussion :
    http://www.developpez.net/forums/sho...d.php?t=206838

    et plus particulièrement ce code :
    http://www.developpez.net/forums/sho....php?p=1331834

  4. #4
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2005
    Messages
    30
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2005
    Messages : 30
    Par défaut
    Merci pour ta réponse Auteur, j'ai regardé et même essayé ton code, mais c'est pas si simple hélas

    Le meme problème persiste. Dans ton exemple, ton div de test est directement placé dans le body, et le offsetLeft et offsetTop retournent la position d'un élément par rapport à l'élément parent. Coup de bol, sur ton exemple c ton body, donc ta page!
    Mon div se trouve dans un div lui meme dans un autre div.... bref, je cherche à faire ça indépendamment de la structure du site. Ce qui fait que pour calculer la position, il faut répéter ces opérations et remonter l'arborescence jusqu'au sommet

    Mais je continue mes recherches ^^

  5. #5
    Expert confirmé
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 660
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 660
    Par défaut
    Mon div se trouve dans un div lui meme dans un autre div.... bref, je cherche à faire ça indépendamment de la structure du site. Ce qui fait que pour calculer la position, il faut répéter ces opérations et remonter l'arborescence jusqu'au sommet
    je crains que tu n'aies pas le choix Cependant, évite les fonctions recursives comme dans le code que tu as posté un peu plus haut. Préfère une boucle de ce style :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    parent = objet;
    while (parent.TagName.toLowerCase()!="body")
    {
       //calcul de la position 
       //.........
     
       //Noeud parent
       parent = parent.parentNode;
    }

Discussions similaires

  1. Code ASCII d'une touche sous Mozilla
    Par SPA dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 02/02/2005, 08h47
  2. probleme de couleur de fond sous mozilla et pas sous IE
    Par soccernet dans le forum Balisage (X)HTML et validation W3C
    Réponses: 7
    Dernier message: 27/12/2004, 10h45
  3. découvrir les erreurs sous Mozilla
    Par rabobsky dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 18/12/2004, 20h51
  4. problème de passage de paramêtre sous mozilla
    Par mat10000 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 27/09/2004, 10h48
  5. Réponses: 18
    Dernier message: 19/08/2004, 15h11

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo