Autor Zpráva
yFang
Profil
Jak javascriptem zjistit vzdálenost určitého objektu od začátku body? OffsetTop vrací vzdálenost od začátku nadřazeného elementu, já bych potřeboval od začátku dokumentu, nezávisle na tom, jak hluboko je daný objekt zanořen.
Leo
Profil
"OffsetTop vrací vzdálenost od začátku nadřazeného elementu, já bych potřeboval od začátku dokumentu, nezávisle na tom, jak hluboko je daný objekt zanořen."

Rekurze s pouzitim offetTop a offsetParent, Leo
yFang
Profil
Zkoušel jsem to takhle, ale je to blbě:
<html>
  <head>
  <meta http-equiv="content-type" content="text/html; charset=utf-8">
  <title></title>
  <script>
  var vzdalenost = 0;
  function zbytekVzdalenost(obj)
  {
    vzdalenost += obj.offsetParent
    if(obj.parentNode.offsetParent > 0)
    {
      zjistitVzdalenost(obj.parentNode);
    }
    else
    {
      return 0;
    }
  }
  function zjistitVzdalenost(obj)
  {
    zbytekVzdalenost(obj);
    vzdalenost += obj.offsetTop;
    window.alert(vzdalenost);
  }
  </script>
  </head>
  <body>
  <div style="margin-top:20px;">
    <span style="margin-top:50px;" id="text" onclick="zjistitVzdalenost(this);">text</span>
  </div>
  </body>
</html>
Leo
Profil
parentNode s tim nema co delat, zajima Vas jen offsetParent, to jsou uplne dve ruzny veci, Leo
yFang
Profil
Leo
Přeci potřebuju "dojít" po rodičích až nahoru a pokaždé přičíst offsetTop k celkové vzdálenosti.
centi
Profil
yFang
Leo mal pravdepodobne na mysli to, že offsetParent nie je číslo (vzdialenosť), ale práve najbližší parent element, od ktorého sa počíta pozícia aktuálneho elementu (typicky teda najbližší relatívne/absolútne pozicovaný parent element).
yFang
Profil
centi
ale práve najbližší parent element, od ktorého sa počíta pozícia aktuálneho elementu
Ahá! Já si řikam, co mi to furt ukazuje. Díky moc.
Leo
Profil
"Leo mal pravdepodobne na mysli to, že offsetParent nie je číslo (vzdialenosť), ale práve najbližší parent element, od ktorého sa počíta pozícia aktuálneho elementu (typicky teda najbližší relatívne/absolútne pozicovaný parent element)."

Nejak tak. S tim, ze offsetParent je rodic odsazeni nebo jak se to jmenuje cesky, coz nemusi byt nutne parentNode (coz je vzdycky proste nadrazeny prvek v hierarchii html dokumentu). Vic tady

http://www.quirksmode.org/js/findpos.html

Leo
yFang
Profil
Leo
Díky, přesně tohle jsem potřeboval.

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:

Odkud se sem odkazuje


Prosím používejte diakritiku a interpunkci.

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

0