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>
Potřebuji nějak zachytit, zda se jedná o případ 1 nebo případ 2. Děkuji za každý tip.
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
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
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
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
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;
}

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: