Depois de penar por uma hora para descobrir uma maneira multi-plataforma de recuperar as posições vertical e horizontal de um objeto na tela, achei uma solução.
Multi-plataforma no sentido que testei no Firefox 1.0.7, IE 6 e Opera 8.5 🙂
function pegarPosicaoX(objeto)
{
var atual_left = 0;
if (objeto.offsetParent) {
while (objeto.offsetParent) {
atual_left += objeto.offsetLeft
objeto = objeto.offsetParent;
}
}
return atual_left;
}
function pegarPosicaoY(objeto)
{
var atual_top = 0;
if (objeto.offsetParent) {
while (objeto.offsetParent) {
atual_top += objeto.offsetTop
objeto = objeto.offsetParent;
}
}
return atual_top;
}
Para usar, supondo que temos um objeto com um id=”exemplo” na página, descobrimos a posição dele fazendo:
elemento = document.getElementById('exemplo');
x = pegarPosicaoX(elemento);
y = pegarPosicaoY(elemento);
Em um próximo post mostrarei porque cargas-da-água precisei descobrir a posição de um elemento (no meu caso, foi uma imagem).
Leave a Reply
You must be logged in to post a comment.