sto impazzendo..... devo semplicemente recuperare la posizione x e y di un layer div, solo in modo crossbrowser. Come si fa?? Ditemi la dicitura completa per i vari tipi di browser così me li segno
sto impazzendo..... devo semplicemente recuperare la posizione x e y di un layer div, solo in modo crossbrowser. Come si fa?? Ditemi la dicitura completa per i vari tipi di browser così me li segno
ci sono delle differenze a seconda che tu voglia recuperare le coordinate di un DIV
a cui hai definito gli stili top/left (in uno stile)
o se ne vuoi recuperare le coordinate a posteriori (
senza aver definito precedentemente quegli stili).
Nella libreria usiamo questo tipo di codice:
cioè in sostanza se lo style è stato definito, cerchiamo tra le proprietà di style,codice:recuperaX = function(){return ((elemento.style.left) ? parseInt(elemento.style.left) : (elemento.offsetLeft||0);} recuperaY = function(){return ((elemento.style.top) ? parseInt(elemento.style.top) : (elemento.offsetTop || 0));}
altrimenti cerchiamo in proprietà "particolari", perche non sono standard, come offsetLeft/Top,
che però sono supportate da quasi tutti i browser moderni.
Ora il codice non è esattamente questo, ma è per farti capire.
ciauz
quindi, io avendo il mio bel tag div:
<div id="a" style="top: 0px; left: 0px; position: absolute;">aaa</div>
per vedere ad esempio in un alert il valore di top dovrei fare così:
alert(document.getElementByID('a').offsetTop);
??
in quel caso basta:
alert(document.getElementByID('a').style.top);
alert(document.getElementById('a').style.top)
sotto netscape 7.02 non funge
sicuro?
per conferma ho provato il codice su Mozilla 1.0 e Netscape 6.0 e mi ritorna il "0px".
Ora non ho quella versione di NN, ma penso che funzioni...
controlla meglio il codice.
sono sicuro
ho controllato su mozilla 1.4a e netscape 7.02
ke palle js... non riesco mai a far funzionare qualcosa :quipy:
non è che lanci l'alert prima che il DIV sia stato caricato?
oh mamma mia come sono fagianoOriginariamente inviato da standard
non è che lanci l'alert prima che il DIV sia stato caricato?
eppure lo sapevo ke funzionava così, e sbattevo credendo ke sti browser avessero un modo tutto loro di gestirli.....
grassie standard
buona pasqua a tutti!
standard, mi pare che ti sei scordato una parentesi!
in recuperaX manca una parentesi alla fine, o sbaglio?codice:recuperaX = function(){return ((elemento.style.left) ? parseInt(elemento.style.left) : (elemento.offsetLeft||0);} recuperaY = function(){return ((elemento.style.top) ? parseInt(elemento.style.top) : (elemento.offsetTop || 0));}
Per questa volta passi...!codice:recuperaX = function(){return ((elemento.style.left) ? parseInt(elemento.style.left) : (elemento.offsetLeft||0));} recuperaY = function(){return ((elemento.style.top) ? parseInt(elemento.style.top) : (elemento.offsetTop || 0));}
Ciao belli!
Luxx (°)
Chi sa dica, chi non sa chieda.