Bonjour à tous.
Je commence à réaliser de petits scripts sympa avec javascript et ajax et un problème me revient régulièrement ... et il semblerait que je ne sois pas le seul, au vu de mes recherches. Cependant, certains sites donnent une solution, d'autres en donnent ... d'autres, bref, c'est le seul véritable problème que je rencontre : il s'agit du calcul de la position d'un élément en javascript. Il semblerait que les navigateurs n'utilisent pas les même propriétés javascript ...
Ainsi, pour "width" et "height", on m'a dit qu'il existait uniquement deux solutions et qu'il fallait faire ainsi :
Et ça fonctionne ... enfin je pense, je n'ai que Firefox et Internet Explorer, mais à priori ce sont les deux seules possibilités. En revanche, pour le calcul de "Top" et de "Left", j'entends des sons de cloches différents ... certains fonctionnent, d'autres non ; mais impossible de dire si il s'agit du code en lui même ou simplement d'un problème de comptabilité de navigateur. On m'a parlé de "document.getElementById(element).Xoffset" et de "document.getElementById(element).offsetTop" par exemple pour la recherche "top", de "document.getElementById(element).offsetLeft" pour "left" ... donc pour "left" il n'existe qu'une seule possibilité ?
Bref, si quelqu'un pourrait récapituler, ce serait réellement utile à pas qu'à moi je pense.
Merci d'avance,
Gaylord.P.
Modifié par Gaylord.P (04 Dec 2008 - 13:25)

Je commence à réaliser de petits scripts sympa avec javascript et ajax et un problème me revient régulièrement ... et il semblerait que je ne sois pas le seul, au vu de mes recherches. Cependant, certains sites donnent une solution, d'autres en donnent ... d'autres, bref, c'est le seul véritable problème que je rencontre : il s'agit du calcul de la position d'un élément en javascript. Il semblerait que les navigateurs n'utilisent pas les même propriétés javascript ...
Ainsi, pour "width" et "height", on m'a dit qu'il existait uniquement deux solutions et qu'il fallait faire ainsi :
if(document.body.clientWidth) {
var body_width = document.getElementById(element).clientWidth;
var body_height = document.getElementById(element).clientHeight;
}
else if(window.innerWidth) {
var body_width = document.getElementById(element).innerWidth;
var body_height = document.getElementById(element).innertHeight;
}
Et ça fonctionne ... enfin je pense, je n'ai que Firefox et Internet Explorer, mais à priori ce sont les deux seules possibilités. En revanche, pour le calcul de "Top" et de "Left", j'entends des sons de cloches différents ... certains fonctionnent, d'autres non ; mais impossible de dire si il s'agit du code en lui même ou simplement d'un problème de comptabilité de navigateur. On m'a parlé de "document.getElementById(element).Xoffset" et de "document.getElementById(element).offsetTop" par exemple pour la recherche "top", de "document.getElementById(element).offsetLeft" pour "left" ... donc pour "left" il n'existe qu'une seule possibilité ?
Bref, si quelqu'un pourrait récapituler, ce serait réellement utile à pas qu'à moi je pense.
Merci d'avance,
Gaylord.P.


Modifié par Gaylord.P (04 Dec 2008 - 13:25)