[javascript] connaitre la position d'un element dans la page ?

connaitre la position d'un element dans la page ? [javascript] - HTML/CSS - Programmation

Marsh Posté le 04-02-2004 à 17:10:01    

salut
j'aimerais connaitre ne javascript la position d'un div dans ma page (pour faire deux trois bricoles)
eske kelkun connaitrait le nom de la propriété et si possible compatible moz/opera/ie ?
marci bokoo

Reply

Marsh Posté le 04-02-2004 à 17:10:01   

Reply

Marsh Posté le 04-02-2004 à 17:14:17    

ça dépend. Tu veux la connaitre en absolute ou en relative ? [:ddr555]

Reply

Marsh Posté le 04-02-2004 à 17:16:21    

Truc IE only : (peut-être adapatable pour les versions récentes de Moz, je sais pas, pas essayé, à l'époque ça existait pas)
 

Code :
  1. function whereIs(myNode)
  2. {
  3.  originalNode = myNode;
  4.  x = 0;
  5.  y = 0;
  6.  while (myNode.tagName != 'BODY')
  7.  {
  8.   x += myNode.offsetLeft;
  9.   y += myNode.offsetTop;
  10.   myNode = myNode.offsetParent;
  11.  }
  12.  originalNode.magicPositionX = x;
  13.  originalNode.magicPositionY = y;
  14. }


 
=> Tu passes par exemple :
 
document.getElementById("tatouille" )
 
Et au final, document.getElementById("tatouille" ).magicPositionX et document.getElementById("tatouille" ).magicPositionY contiennent la position.
 
PS: interdit de changer le nom des variables, c'est moi qui ai créé ce script pourri, faut le laisser tel quel :p

Reply

Marsh Posté le 04-02-2004 à 17:17:34    

MagicBuzz a écrit :

Truc IE only : (peut-être adapatable pour les versions récentes de Moz, je sais pas, pas essayé, à l'époque ça existait pas)
 

Code :
  1. function whereIs(myNode)
  2. {
  3.  originalNode = myNode;
  4.  x = 0;
  5.  y = 0;
  6.  while (myNode.tagName != 'BODY')
  7.  {
  8.   x += myNode.offsetLeft;
  9.   y += myNode.offsetTop;
  10.   myNode = myNode.offsetParent;
  11.  }
  12.  originalNode.magicPositionX = x;
  13.  originalNode.magicPositionY = y;
  14. }


 
=> Tu passes par exemple :
 
document.getElementById("tatouille" )
 
Et au final, document.getElementById("tatouille" ).magicPositionX et document.getElementById("tatouille" ).magicPositionY contiennent la position.
 
PS: interdit de changer le nom des variables, c'est moi qui ai créé ce script pourri, faut le laisser tel quel :p


 
pauv petit.  :lol:

Reply

Marsh Posté le 04-02-2004 à 17:22:15    

:p

Reply

Marsh Posté le 04-02-2004 à 17:28:25    


 
 document.getElementById('id_du_div').offsetLeft;
 document.getElementById('id_du_div').offsetTop;
 
marche pour IE 5.5+, Moz 1+ et Opera 7+

Reply

Marsh Posté le 04-02-2004 à 17:31:59    

ça marche pour tout les tags ?

Reply

Marsh Posté le 04-02-2004 à 17:33:11    

MagicBuzz a écrit :

ça marche pour tout les tags ?


 
Je n'ai pas testé, mais pour les divs en tous cas, ça marche.  :D  
 
Je crois que j'en ai apporté une démonstration suffisamment convaincante ces derniers temps.  :whistle:

Reply

Marsh Posté le 04-02-2004 à 17:34:29    

ok. Mais moi ct pour mon site que j'ai fait avant le XHTML, et c'était pour afficher des trucs dans des TD dans un tableau, imbriqué dans un autre tableau imbriqué dans... et du coup c'est tout ce que j'ai trouvé qui marche :D
 
PS: c'était IE5 à l'époque ;)

Reply

Marsh Posté le 04-02-2004 à 19:25:42    

marci messieurs !
simultanément j'ai demandé sur irc et on m'a donné ça:
 

Code :
  1. function FindXY(obj){
  2. var x=0,y=0;
  3. while (obj!=null){
  4.  x+=obj.offsetLeft-obj.scrollLeft;
  5.  y+=obj.offsetTop-obj.scrollTop;
  6.  obj=obj.offsetParent;
  7. }
  8. return {x:x,y:y};
  9. }

pas testé sur touuuuuuuuuuus les navigateurs possibles mais ça marche sur safari mozilla ie et opéra :)

Reply

Marsh Posté le 04-02-2004 à 19:25:42   

Reply

Marsh Posté le 04-02-2004 à 19:33:11    

k666 a écrit :

marci messieurs !
simultanément j'ai demandé sur irc et on m'a donné ça:
 

Code :
  1. function FindXY(obj){
  2. var x=0,y=0;
  3. while (obj!=null){
  4.  x+=obj.offsetLeft-obj.scrollLeft;
  5.  y+=obj.offsetTop-obj.scrollTop;
  6.  obj=obj.offsetParent;
  7. }
  8. return {x:x,y:y};
  9. }

pas testé sur touuuuuuuuuuus les navigateurs possibles mais ça marche sur safari mozilla ie et opéra :)


 
Et ma solution 24 fois plus simple, elle pue ?

Reply

Marsh Posté le 04-02-2004 à 20:40:58    

snif pas pu la tester mais j'essaie ça demain matin:jap:

Reply

Marsh Posté le 13-12-2007 à 01:27:26    

Hermes ta methode donne la position de l'element par rapport à son parent,  
et encore, en fonction de la zone visible de la page.
Leur méthode donne la position par rapport à la page complète.
 
EDIT :  :sol:  :ange:  :pfff: post-it : *vérifier dates des threads trouvés par google avant d'y répondre*


Message édité par vanish le 13-12-2007 à 01:31:17
Reply

Marsh Posté le 26-01-2009 à 14:40:48    

Héhé j'ai trouver un peu la même solution que vous la Position d'une div, merci google :D

Reply

Marsh Posté le 26-01-2009 à 14:53:02    

p4t4t4rt3 a écrit :

Héhé j'ai trouver un peu la même solution que vous la Position d'une div, merci google :D


 
C'est pour quel type de marathon que tu déterres tous les topics vieux de 5 ans qui ont déjà eu au moins 1 réponse?


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed