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 :

Vraie position d'un objet ?


Sujet :

JavaScript

  1. #1
    Expert confirmé
    Avatar de le_chomeur
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2006
    Messages
    3 653
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 3 653
    Points : 4 835
    Points
    4 835
    Par défaut Vraie position d'un objet ?
    Bonjour a tous , je tente d'utiliser une méthode pour récupérer la position d'un objet, pour en positionner un second , mais je m'aperçois que les positions ne sont pas identique sous ie/FF ET chrome :-(

    ci joint le zip de démo ...

    alors est ce que le problème vient de la méthode de recherche de position ou autre ???
    Fichiers attachés Fichiers attachés

  2. #2
    Membre confirmé Avatar de d-Rek
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2007
    Messages
    438
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2007
    Messages : 438
    Points : 455
    Points
    455
    Par défaut
    Et bah j'ai pas tout compris car malgré avoir téléchargé ton zip, ton soucis est pas vraiment expliqué..
    Pour savoir où est un élément, je fais document.getElementById('mon_id').offsetLeft et document.getElementById('mon_id').offsetTop malgré que mon élément ne soit pas du tout en absolute..
    J'espère que ça t'aidera !

  3. #3
    Expert confirmé
    Avatar de le_chomeur
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2006
    Messages
    3 653
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 3 653
    Points : 4 835
    Points
    4 835
    Par défaut
    pardon

    effectivement ...
    en fait mes infobulle ne sont pas correctement positionnées selon chaque navigateur ... impossible de trouver pourquoi ...

    il suffit de lancer la page de démo sur différent navigateur pour voir le comportement ;-)

  4. #4
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 640
    Points : 66 669
    Points
    66 669
    Billets dans le blog
    1
    Par défaut
    ça viendrait pas du boxtype ?
    si un calcul de position est fait par rapport à des height ou width ...

  5. #5
    Expert confirmé
    Avatar de le_chomeur
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2006
    Messages
    3 653
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 3 653
    Points : 4 835
    Points
    4 835
    Par défaut
    je crois qu'il s'agit non pas d'un problème de positionnement , mais de taille de la tooltip :

    j'utilise du padding et je crois me souvenir que celui ci n'est pas interprèté dans la taille de l'élément , je vais faire un test et je reviens donner les résultats ;-)

  6. #6
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Salut,

    Pour mes infobulles, j'utilise ce type de code et je n'ai jamais eu de souci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    function getPosition(elt){
        var posX = elt.offsetLeft;
        var posY = elt.offsetTop + elt.offsetHeight;
        while (elt.offsetParent) {
            elt = elt.offsetParent;
            posX += elt.offsetLeft;
            posY += elt.offsetTop;
        }
        return {haut: posY, gauche: posX}
    }

  7. #7
    Expert confirmé
    Avatar de le_chomeur
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2006
    Messages
    3 653
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 3 653
    Points : 4 835
    Points
    4 835
    Par défaut
    oui j'utilise le même Bovino ;-)

    mais la j'ai l'impression que le problème se situe ailleurs ...


    mon code pour calculer la position de l'input :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    var getPosition = function(objectDom) {
    	var tmpLeft = objectDom.offsetLeft;
    	var tmpTop = objectDom.offsetTop;
    	var MyParent = objectDom.offsetParent;
    	while(MyParent) {
    		tmpLeft += MyParent.offsetLeft;
    		tmpTop += MyParent.offsetTop;
    		MyParent = MyParent.offsetParent;
    	}
    	return [tmpLeft,tmpTop]
     
      };
    ensuite je calcul la position de la box ...
    elle s'affiche parfaitement selon les calculs donné sous firefox, mais pas sous ie , ni chrome ...


    après test il ne sagit pas de problème de padding :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
    <html>
    	<head>
    		<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    		<title>Untitled Document</title>
    	</head>
    	<body>
    		<div id="test" style="border:5px solid green;padding:10px;background-color:red;width:200px;">
    			<div style="background-color:#ffffff;">
    				voici le contenu dans une div simple avec du contenu et fond blanc<br />
    				ma div parente : <br /> 
    				- bordure de 5px <br />
    				- padding de 10px <br />
    				- width de 200px fixée <br />
    			</div>
    		</div>
     
    		vérification en javascript :
    		<div id="result" style="border:1px solid #666"></div>
    		<script type="text/javascript">
    		var monElement = document.getElementById('test');
    		var monResultat = document.getElementById('result');
    		monResultat.innerHTML += "Taille sur monElement.style.width : "+monElement.style.width+"<br />";
    		monResultat.innerHTML += "Taille sur monElement.offsetWidth : "+monElement.offsetWidth+"<br />";
    		</script>
    	</body>
    </html>
    résultat identique sous ie/ff/chrome/safari

  8. #8
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 640
    Points : 66 669
    Points
    66 669
    Billets dans le blog
    1
    Par défaut
    y'a un code quelque part pour le calcul d'un vrai offset qui cumule par rapport au parents ...

  9. #9
    Expert confirmé
    Avatar de le_chomeur
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2006
    Messages
    3 653
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 3 653
    Points : 4 835
    Points
    4 835
    Par défaut
    la taille ?
    ( je viens de mettre des alerts, et effectivement les résultats renvoyés pour les calcul ne sont pas identique ... )

    portion incriminé :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    switch (finalRender) {
    				case "Left":
    					//Récupération des propriétées de la toolTip height pour la centrer
    					positionToolTip = [positionObject[0] - mToolTip.ToolTip.offsetWidth - 12, positionObject[1] + (ObjectDom.offsetHeight / 2) - (mToolTip.ToolTip.offsetHeight / 2)];
    					alert(positionToolTip);
    					break
    ( dans le fichier )

  10. #10
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 640
    Points : 66 669
    Points
    66 669
    Billets dans le blog
    1
    Par défaut
    donc boxtype
    les border , margins ou padding n'étant par compris de la même façon dasn les dimensions hors tout des objets selon les navigateurs ...
    Il me semble que JQuery l'intègre

  11. #11
    Expert confirmé
    Avatar de le_chomeur
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2006
    Messages
    3 653
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 3 653
    Points : 4 835
    Points
    4 835
    Par défaut
    bingo effectivement ...

    et c'est même pire que ça :-)

    voila mon CSS :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    .mToolTip{
    				width:200px;
    				padding:5px;
    				position:absolute;
    				background-color:#323232;
    				color:#ffffff;
    			}
    			.mToolTip .contentText{
    				background-color:#505050;
    				padding:5px;
    			}
    mToolTip corespond a la div Parent et contentText a l'enfant ce qui donne :


    ---------mToolTip----------
    | -----contentText----- |
    | |__________________| |
    |______________________|

    hé bien ... la hauteur des 2 est ajouté

    si je fais un mToolTip.offsetHeight sous FF j'obtiens 40px ( pour une VRAIE taille de 40px vérifié sous photoshop ... )
    sous ie : 69px j'en reste baba !!

  12. #12
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 640
    Points : 66 669
    Points
    66 669
    Billets dans le blog
    1
    Par défaut
    c'est pas une nouveauté fillot
    [ame]http://en.wikipedia.org/wiki/Internet_Explorer_box_model_bug[/ame]

  13. #13
    Expert confirmé
    Avatar de le_chomeur
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2006
    Messages
    3 653
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 3 653
    Points : 4 835
    Points
    4 835
    Par défaut
    loul !

    et une solution en javascript ?

  14. #14
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 640
    Points : 66 669
    Points
    66 669
    Billets dans le blog
    1
    Par défaut
    sniffer le navigateur et additionner toi même les comptued styles ...

  15. #15
    Expert confirmé
    Avatar de le_chomeur
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2006
    Messages
    3 653
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 3 653
    Points : 4 835
    Points
    4 835
    Par défaut
    ben non justement je dois les soustraire :-/

  16. #16
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 640
    Points : 66 669
    Points
    66 669
    Billets dans le blog
    1
    Par défaut

    tu peux additionner des nombres négatifs ...

    y'a pas une autre paires de branches ou m'accrocher dans le coin ...

  17. #17
    Expert confirmé
    Avatar de le_chomeur
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2006
    Messages
    3 653
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 3 653
    Points : 4 835
    Points
    4 835
    Par défaut
    mince je n'y arrive pas ... :-/

Discussions similaires

  1. [Debutant]Memorisation de la position d'un objet
    Par Treuze dans le forum OpenGL
    Réponses: 3
    Dernier message: 20/03/2008, 21h18
  2. Position "automatique" des objets
    Par pwfsic dans le forum MATLAB
    Réponses: 4
    Dernier message: 13/06/2007, 12h59
  3. changer la position d'un objet dans la scene
    Par Lsong dans le forum DirectX
    Réponses: 3
    Dernier message: 21/03/2007, 18h41
  4. [java3D] detecter la position d'un objet.
    Par apesle dans le forum 3D
    Réponses: 3
    Dernier message: 14/04/2006, 17h30
  5. [C#]Bouger la position d'un objet
    Par fantomchris dans le forum Windows Forms
    Réponses: 5
    Dernier message: 06/03/2006, 11h50

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