Autor Zpráva
noko
Profil
Dobrý den, setkal jsem se s nečekaným problémem který nemohu vyřešit:
Mám div který mění svoji polohu na stránce a já potřebuji zjistit jeho aktuální pozici.
V případě nepohyblivých prvků bych to řešil pomoci offsetLeft a offsetTop, ale to v mém případě zapíše pouze původní souřadnice.
Poraďte prosím...
noko
Profil
Dodávám Živá ukázka
Chamurappi
Profil
Reaguji na noka:
ale to v mém případě zapíše pouze původní souřadnice
Co to znamená? Ve tvé ukázce se offsetLeft mění, pokud si ho dám vypisovat.

Univerzální odpovědí na všechny otázky ohledně pozice je metoda getBoundingClientRect(), která vrací obdélník se souřadnicemi vzhledem k ploše prohlížeče.
noko
Profil
Chamurappi:
Co to znamená? Ve tvé ukázce se offsetLeft mění, pokud si ho dám vypisovat.
Já pro jištění souřadnic používám
var id = "div";
var curleft = document.body.offsetLeft;
var curtop = document.body.offsetTop;
obj = document.getElementById(id);
while (obj.offsetParent) {
   curleft += obj.offsetLeft;
   obj = obj.offsetParent;
}
   
obj = document.getElementById(id);
while (obj.offsetParent) {
   curtop += obj.offsetTop;
   obj = obj.offsetParent;
}

document.write(curleft +',' +curtop);
A po hýbání prvkem se nic nemění.
Dělám něco špatně?

edit: oprava kódu
Keeehi
Profil
noko:
A zavoláš znova ten kód, když se obdélník pohne? Určitě ne protože s document.write by ti to nefungovalo. Musel bys použít třeba innerHTML.
noko
Profil
Keeehi:
Díky!
Keeehi, Chamurappi:
Už jsem to opravil - stačilo vytvořit funkci pozice() a tu volat 2krát, pomocí onload() a onkeydown()
Řešení: Živá ukázka

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: