position dune balise A en px dans l'ecran

position dune balise A en px dans l'ecran - HTML/CSS - Programmation

Marsh Posté le 14-08-2002 à 09:40:05    

Salut
 
Je cherche à obtenir la position d'un lien.
Sur ce lien j'ai un mousedown qui appel une fonction qui me positionne un claque:
event.srcElement.offsetTop
j'obtient un resultat en pixel mais qui ne corrspond pas du tout à la position dans ma page!! dan l'écran oui mais pas de mon doc HTML...  
Comment faire pour obtenir la valuer que je cherche

Reply

Marsh Posté le 14-08-2002 à 09:40:05   

Reply

Marsh Posté le 14-08-2002 à 09:59:36    

ce sont les coordonnées de la position de l'élément dans le repère de son papa. pointeur papa = offsetParent. tu n'as qu'à faire une petite boucle pour remonter la hiérarchie et retrouver les coords dans le repère de BODY.

Reply

Marsh Posté le 14-08-2002 à 10:13:50    

mon lien est dans un tableau donc il se repere par rapport à la balise TD alors???

Reply

Marsh Posté le 14-08-2002 à 10:16:25    

[:yaisse]
 
et <td> est dans le repère de <table>, <table> est dans le repère ... de son parent, etc.

Reply

Marsh Posté le 14-08-2002 à 10:30:15    

pour obtenir les coordonnées du la balise body..le plus simple c'est dee faire un getElmentsByTagName("Body" )...
Mais un style.top ne me donne rien??

Reply

Marsh Posté le 14-08-2002 à 10:39:57    

bon je pense avoir bien compris cette histoire de repere..
Mais je ne vois pas comment faire pour positionner un element dans un autre repere??
tu as des exemples sur le web??

Reply

Marsh Posté le 14-08-2002 à 10:43:52    

grosmethos a écrit a écrit :

tu as des exemples sur le web??


[:google2] http://216.239.51.100/search?q=cac [...] n&ie=UTF-8
 
par exemple ...


Message édité par youdontcare le 14-08-2002 à 10:45:44
Reply

Marsh Posté le 14-08-2002 à 10:54:08    

bon je vois toujours pas..
 
Le offsetParent me retourne bien ma balise body...mais je vois pas comment aller chercher les coordonnées de ma balise A avec ça???

Reply

Marsh Posté le 14-08-2002 à 10:55:16    

tu as du code, tu copiecolles, tu testes, tu vois ce que ça donne.

Reply

Marsh Posté le 14-08-2002 à 13:57:45    

bon ça y est j'ai recupere et addapter deux fonction qui me permettent de referencer la balise A
function getTop(MyLayer)
{
  if (MyLayer.offsetParent)
 return (MyLayer.offsetTop + getTop(MyLayer.offsetParent));
  else
 return (MyLayer.offsetTop);
}

Je fais un alert sur le return je vois bien offsetTop changer:
passe de 5 à 15 puis renvoie 0.
Donc je reprens et arreter moi si je me trompe :)
Je remonte de balise imbriquée en balise imbriquée jusqu'a plus rien obtenir à part LA BALISE BODY.
Et enfin j'obtiens la distance qui separe ma balise A de mon entete de document!!
 
Ok donc je viens de comprendre (et decouvrir) une nouvelle propriete offsetParent...
Merci bien!!

Reply

Marsh Posté le 14-08-2002 à 13:57:45   

Reply

Marsh Posté le 14-08-2002 à 14:07:38    

mais bon sang c'est si dur que ça le copiercoller ?  
 
var elem = document.all(which);
var pos = elem.offsetLeft;
while (elem.offsetParent != null) {
  elem = elem.offsetParent;
  pos += elem.offsetLeft;
  if (elem.tagName == 'BODY';) break;
}
return pos;
 
en plus c'est en couleur !
 
ta fonction ne marchera que pour les éléments fils de <body>, c'est à dire de façon extrèmement limitée ...

Reply

Marsh Posté le 14-08-2002 à 14:08:13    

youdontcare a écrit a écrit :

var elem = document.all(which);


et ça ça suxxe des ours, il faut utiliser document.getElementById()!

Reply

Marsh Posté le 14-08-2002 à 14:26:16    

Ca suxxe peut etre des ours mais ça marche pareil!!
 
Par contre dans mon calque que je fais apparaitre lorsque je clique sur le balise a...mon claque se barre completement à droite..
j'ai bô lui definir la propriete left...se barre quand meme...
alors que le propriete top marche tres bien meme apres le click???
Des idées d'ou ça peut venir???

Reply

Marsh Posté le 14-08-2002 à 14:48:06    

d'autant que si je mets un alert et qu'ensuite je click sur ok ben le menu reste en place alors que si je mets ps d'alert ben sa disparait a droite!!!
 
J'ai essayé un retrun false mais rien a faire, sans l'alert ça se barre!!
 
J'ai verifié je n'entre dans aucune fonction!!
 
C'est assez strange non??

Reply

Marsh Posté le 14-08-2002 à 15:29:36    

un cti effort pour me laisser partir un week end tranquil!!!

Reply

Marsh Posté le 14-08-2002 à 15:47:01    

bon j'ai rajouté un cancleBubble au bon endroit et ça passe!!

Reply

Sujets relatifs:

Leave a Replay

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