Autor | Zpráva | ||
---|---|---|---|
noko Profil |
#1 · Zasláno: 3. 5. 2016, 15:12:29
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 |
#2 · Zasláno: 3. 5. 2016, 17:32:14
Dodávám Živá ukázka
|
||
Chamurappi Profil |
#3 · Zasláno: 3. 5. 2016, 17:37:16
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); Dělám něco špatně? edit: oprava kódu |
||
Keeehi Profil |
#5 · Zasláno: 3. 5. 2016, 18:45:14
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 |
||
Časová prodleva: 9 let
|
0