Autor | Zpráva | ||
---|---|---|---|
Someone Profil |
Dobrý den, rád bych se zeptal: Jak je možné pomocí JS zjistit zda je nějaký prvek uvnitř jiného?
<div id="prvek1"></div><div id="prvek2"></div> <div id="prvek1"><div id="prvek2"></div></div> edit: Teď jsem si uvědomil, že to neřeší můj problém. Jednoduše řečeno: Potřebuji zjistit, zda se DIV1 nachází nad/v oblasti divem 2 |
||
Str4wberry Profil |
#2 · Zasláno: 11. 3. 2012, 15:55:29
Viz
parentNode .
|
||
Someone Profil |
Když bych měl situaci:
<div id="prvek1"><div id="prvek2"></div></div> a absolutním pozicováním dostal prvek2 z prvku1 tak parentNode vyhodi true nebo false? Já potřebuji aby vyhodil false... Ale předpokládám, že absolutní pozice nemění nic na tom, že je to v kódu psané takto: <div id="prvek1"><div id="prvek2"></div></div>
|
||
Str4wberry Profil |
#4 · Zasláno: 11. 3. 2012, 16:07:29
To předpokládáš správně. Ostatně se o tom můžeš přesvědčit pomocí vývojářského nástroje ve svém prohlížeči.
Zjistit přesunutí mimo jiný element můžeš porovnáním jejich souřadnic a velikosti. |
||
Someone Profil |
#5 · Zasláno: 11. 3. 2012, 16:18:08 · Upravil/a: Someone
Nastíním jaký mám problém. Stránka vytvořená obtékáním, je pomocí margin: 0px auto; vycentrována a obsahuje box(čtverec) o stranách 700 x 700. Po kliknutí(pravým tlačítkem) my vyjede menu(něco ve stylu, když se klikne pravým v prohlížeči.) Z toho menu vyberu položku, kliknu a položka(menší div) se objevý v tom vetším boxu. Teď mi jde o to, abych s ní mohl manipulovat a zároveň omezit její možnost opustit větší box. Dříve jsem to tu řešil a s Vaší pomocí jsem to vyřešil pomocí onmousedown, uložení aktuální pozice cursoru a při onmousemove porovnávat aktuální pozici s uloženou a na základě jejich rozdílu přidávat prvku, který je relativně pozicovaný, left/top. To vše fungovalo jak mělo, do té doby než se přidaly další prvky. Ono rozbalovací menu nebude obsahovat jednu položku a pakliže jich je víc a pohnu jedním objektem tak je původní pozice kurzoru uložena jen pro ten jeden prvek a v případě, že začnu pohybovat jiným, tak to poskočí daleko. Pokusil jsem se to vyřešit tak, že při onmouseup se uložená pozice vynuluje. Jenže zde nastává problém tehdy, když si to rozmyslím a opět začnu pohybovat prvkem, pro který byla pozice uložená.(skočí relativně na nulu). Řešit to tak, že pro každý prvek si udělám jednu proměnnou mi přijde jako blbost. Tak jsem se to pokusil řešit absolutním pozicováním, u kterého ovšem nelze(aspoň nevím jak) ošetřit to, aby menší prvky nevyjely z většího boxu a poté případné zjištění relativní pozice v rámci boxu. Nevíte prosím, jakým způsobem bych měl takový problém řešit?
Someone: „Zjistit přesunutí mimo jiný element můžeš porovnáním jejich souřadnic a velikosti.“ Jakým způsobem můžu získat souřadnice nepozicovaného prvku? |
||
Radek9 Profil |
#6 · Zasláno: 11. 3. 2012, 17:20:16
Someone:
„Jakým způsobem můžu získat souřadnice nepozicovaného prvku?“ Zjsitit absolutní offset: function getOffset(obj){ var result = {y: 0, x: 0}; do{ result.y += obj.offsetTop; result.x += obj.offsetLeft; }while(obj = obj.offsetParent); return result; } |
||
Časová prodleva: 12 let
|
0