Newsgroup: it.comp.lang.javascript
Titolo: Posizione immagine

Ciao a tutti,
qualcuno potrebbe dirmi come faccio a sapere la posizione x e y di
un'immagine in una pagina html con Internet Explorer?
con netscape o mozilla basta:
document.nomeImmagine.x (o y)
ma con Internet Explorer non funziona.
AIUTOOOOOO!!!!!
ciao e grazie
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 un'immagine in una pagina html con Internet Explorer?
Cosa vuol dire "posizione x-y" ? angolo in alto a sinistra?
Cerca comunque su msdn documentazione su offsetTop-offsetLeft (attenzione
che ti dą le coordinate rispetto al suo contenitore; devi quindi fare una
funzione ricorsiva per risalire alle coordinate rispetto alla pagina).
-- 
"Ti sei salvato
 o sei entrato in banca pure tu?"
									    A.V.

 funzione ricorsiva per risalire alle coordinate rispetto alla pagina).
-- 


 ma mi da sempre zero. Potresti essere più preciso per favore.
 window.GetAbsTop=function(sender) {
  var ris=0;
  if(!sender.offsetParent) return 0;
  ris=sender.offsetTop+GetAbsTop(sender.offsetParent);
  return ris;
 } 
Esegui quanto sopra e prova poi a fare un alert(GetAbsTop(tuooggetto)); 
-- 
"Emancipate yourselves from mental slavery;
None but ourselves can free our minds"
									    B.M.

 Esegui quanto sopra e prova poi a fare un alert(GetAbsTop(tuooggetto));
-- 


 è un gran casino e non so come uscire da questa situazione.
Posta un codice base (semplificato) che riproduce il problema.
-- 
"That until there is no longer first class
And second class citizens of any nation
Until the colour of a man's skin
Is of no more significance than the colour of his eyes
Me say war"
B.M.

 Posta un codice base (semplificato) che riproduce il problema.
-- 


> > Posta un codice base (semplificato) che riproduce il problema.
Ecco il codice semplificato, puoi testarlo e vedrai che funziona, penso
sia abbastanza chiaro:
ad un evento voglio che il layer si posizioni esattamente dove c'è
l'immagine.
Se non si riesce con IE mi va bene anche una soluzione alternativa, se
hai qualche consiglio.
<html>
<head>
<script language="JavaScript" type="text/JavaScript">
//Per mozilla
function Mozilla(cat){
document.getElementById('layer'+cat).style.left=document['img'+cat].x+"px";
document.getElementById('layer'+cat).style.top=document['img'+cat].y+"px";
	document.getElementById('layer'+cat).style.visibility="visible";
}
//Per Internet explorer
function IE(cat){
	document.all['layer'+cat].style.left=document['img'+cat].x+"px";
	document.all['layer'+cat].style.top=document['img'+cat].y+"px";
}
</script>
</head>
<body>
<a href="javascript:Mozilla('1')">Mozilla</a>
<br>
<a href="javascript:IE('1')">Internet Explorer</a>
<br>
<div id="layer1" name="layer1" style="position:absolute; width:106px;
z-index:1; overflow: hidden; visibility: hidden; left: 360px; top:
414px;">
  <table align="center" width="104" border="0" cellspacing="0"
cellpadding="0">
	<tr> 
		<td>Contenuto layer</td>
	</tr>
 </table>
</div>
<table width="100" border="0" cellspacing="0" cellpadding="0">
  <tr>
    <td>Questa tabella può essere in qualsiasi punto della pagina</td>
  </tr>
  <tr>
    <td height="1"><img src="immagini/pixel.gif" name="img1" width="1"
height="1" id="img1"></td>
  </tr>
</table>
</body>
</html>


 sia abbastanza chiaro:
[CUT]
Scusa ma l'implementazione che hai fatto con la function che ti ho postato
dov'è?
Ho aggiungo la GetAbsTop che ti ho indicato e funziona correttamente (già
che c'ero ti ho messo anche la corrispondente GetAbsLeft). Mancava il
visible (senza il layer non veniva visualizzato visto che era nascosto).
http://www.criosoftware.it/Caputo.htm


 
http://www.criosoftware.it/Caputo.htm
-- 
