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 :

Coordonnées absolues d'un élément


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre chevronné
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2011
    Messages
    271
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Italie

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Avril 2011
    Messages : 271
    Par défaut Coordonnées absolues d'un élément
    Bonjour,

    J'utilise une fenêtre fixe (en réalité un DIV) dans mon écran qui reste a la même position lorsqu’on défile la page en utilisant la propriété CSS position: fixed;
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    .MaFenetre {
    position: fixed;
    right: 0px;
    top: 179px;
    width: 140px;
    height: 180px;
    }
    Maintenant je voudrais avoir les coordonnées absolue de cette élément

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    var mafen = document.getElement('.MaFenetre');
    mafen.top = mafen.getTop();
    mafen.left = mafen.getLeft();
    Ca me donne toujours les coordonnées 179px et 0px, alors que la fenetre s'est déplacée avec le défilement, comment faire pour avoir les coordonnées absolues avec les défilement?

    Merci

  2. #2
    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 : 54
    Localisation : France, Gironde (Aquitaine)

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

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    Le principe d'un élément en position fixed est qu'il est précisément à une position fixe sur la partie visible de la page (d'où son nom en fait).
    Pour récupérer sa position dans le document, il faut tenir compte de la valeur de scrollTop() et scrollLeft().
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  3. #3
    Membre chevronné
    Avatar de kalimukti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2011
    Messages
    262
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2011
    Messages : 262
    Par défaut
    Citation Envoyé par Bovino Voir le message
    Le principe d'un élément en position fixed est qu'il est précisément à une position fixe sur la partie visible de la page (d'où son nom en fait).
    Pour récupérer sa position dans le document, il faut tenir compte de la valeur de scrollTop() et scrollLeft().
    Euh... c'est plutôt des fonctions jquery ça, nan ?
    Moi j'utilise les propriétés et , j'ai regardé un peu scrolltop et scrollleft, en js ça a l'air plutôt d'être des propriétés, et j'ai du mal à voir la différence par ex entre scrollleft et offsetleft...
    enfin, bon, quoiqu'il en soit, ça marche aussi avec offsetleft et offsettop, avec une petite manip un peu spéciale: ces propriétés donnent le offset de l'élément par rapport à son parent. (il faut donc parcourir tout l'arbre, tant qu'il y a un parent, pour avoir les coordonnées absolues: le parcours est en gras dans le code)
    (le code que j'utilise est tiré d'un tuto sur le web)
    la fonction:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    function ObjectPosition(obj) {
        var curleft = 0;
          var curtop = 0;
          if (obj.offsetParent) {
                do {
                      curleft += obj.offsetLeft;
                      curtop += obj.offsetTop;
                } while (obj = obj.offsetParent);
          }
          return [curleft,curtop];
    }
    et tu t'en sers de cette façon:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <div id="MyElementId">My test element</div>
    <script language="javascript" type="text/javascript">
        var aryPosition = ObjectPosition(document.getElementById('MyElementId'));
        document.write('MyElementId left offset is ' + aryPosition[0] + '<br />');
        document.write('MyElementId top offset is ' + aryPosition[1] + '<br />');
    </script>

Discussions similaires

  1. [OpenGL] Translation ou coordonnées absolues?
    Par tetedane1 dans le forum Développement 2D, 3D et Jeux
    Réponses: 4
    Dernier message: 18/03/2011, 08h45
  2. Coordonnées Absolues vs Relatives
    Par Viish dans le forum Android
    Réponses: 2
    Dernier message: 06/02/2010, 20h58
  3. Coordonnées de la souris par rapport à un élément
    Par renaud26 dans le forum Général JavaScript
    Réponses: 15
    Dernier message: 08/09/2006, 16h07
  4. coordonnées absolues d'un composant html
    Par santana2006 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 25/08/2006, 11h11
  5. Coordonnées absolues d'un objet VCL
    Par gregcat dans le forum Langage
    Réponses: 2
    Dernier message: 01/12/2005, 14h47

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