| 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: 10 let
|
|||
0