Autor Zpráva
xslove
Profil
potřeboval bych zjistit souřadnice "top" a "left" elementu (v mém případě <img>) v dokumentu. potřebuju to jako výraz do CSS pro jiný element s absolutním umístěním
př:
.styl1
{
top: expession (..javascript..);
left: expression (..javascript..)
}
peta
Profil *
xslove
X.style.top
X.ofsettX
www.google.com
peta
Profil *
xslove
takhle, prozkoumej mapy.cz ,tam pouzivaji takove zajimave scripty.
xslove
Profil
mám obavu, že pokud element nema definovany styl s top a left, tak to nefunguje

muj příklad

<body>
Toto je normální text stránky.<br>

<br/>

<center>
<img id="mapX" src="ural.jpg" width="600" height="400" border="0"/>
</center>

<img src="ico.png" style="position: absolute; left: expression(mapX.offsetX); top: expression(mapX.style.top);"/>

</body>
juneau
Profil
Tohle mi funguje spokojene jak v IE, tak FF (...).


// works in IE and Mozilla.
function getElementPosition(element){
var x=0,y=0;
while (element!=null){
x+=element.offsetLeft-element.scrollLeft;
y+=element.offsetTop-element.scrollTop;
element=element.offsetParent;
}
return {x:x,y:y};
}

// Browser compatible element getter
function getElement(id){
if (document.all)
return document.all[id];
if (document.getElementById(id))
return document.getElementById(id);
return null;
}

// generic display function
function findElement(id){
// Get the element by its id
element = getElement(id);
// make sure that the element was found
if (! element) return;
// get the object that will contain the x,y coordinates
return position = getElementPosition(element);
}


// pozice obrazku (resp cehokoli s ID, asi)
var pozice = findElement('obrazek');
var poz_x = pozice.x;
var poz_y = pozice.y;
Leo
Profil
Problemy to muze mit pokud pouzivate border a padding, nebo u relativne pozicovanych elementu, v nekterych prohlizecich... jen od pohledu, nezkousel jsem tenhle konkretni skript. Taky pokud ma body nejaky margin a padding, Leo
juneau
Profil
To uz je na odzkouseni, pro moje jednoduche potreby a predem zname CSS to staci.
Toto téma je uzamčeno. Odpověď nelze zaslat.

0