Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Problem z offset().top
Forum PHP.pl > Forum > Po stronie przeglądarki > JavaScript
klaudio
Witam
Mam takie pytanko. Mam glownego diva powiedzmy <div id="glowny"> i kilka innych divow w srodku niego niech to bedzie a, b, c.

<div id="glowny">
<div id="A">a</div>
<div id="B">b</div>
<div id="C">c</div>
</div>


I teraz chce przy uzyciu takiej skladni offset().top odleglosc ktoregos w wewnetrznych divow do mojego glownego diva. Niestety offset().top zwraca mi wartosc nie do diva o ID=glowny ale to krawedzi okna. Pytanie jest jak to zrobic zeby zwracal mi tylko odleglosc do diva o ID=glowny.

Z gory dziekuje za odpowiedz.

Pozdrawiam smile.gif
erix
.position()
klaudio
Witam i ponawiam temat.

Rozwiazanie wyzej zwraca jakies dziwne wartosci a pozatym rozwiazanie w jQuery w tym wypadku mnie nie interesuje.

Ponizej mam DIV a w nim kilka tabel. Chce aby kazde klikniecie na wiersz zwracalo mi odleglosc kliknietego wiersza do DIVa a o ID tabelka.
Niestety offsetTop zwraca mi wartosc tylko do swojego rodzica czyli do tabeli o ID tab 0, 1 lub 2.
Jak by byla jedna tabela to offsetTop jest OK ale w tym wypadku nie dziala.

Czy ktos ma jakis pomysl?
Z gory dziekuje za pomoc i pozdrawiam smile.gif

  1. <div id="tabelka">
  2. <table id="tab0" border='0' cellspacing='0' cellpadding='0' style='height:30px; width:600px; background:yellow'>
  3. <tr id="x1" onclick="pos(this);"><td>1</td><td>1</td></tr>
  4. <tr id="x2" onclick="pos(this);"><td>2</td><td>2</td></tr>
  5. <tr id="x3" onclick="pos(this);"><td>3</td><td>3</td></tr>>
  6. </table>
  7. <table id="tab1" border='0' cellspacing='0' cellpadding='0' style='height:30px; width:600px; background:yellow'>
  8. <tr id="x4" onclick="pos(this);"><td>4</td><td>4</td></tr>
  9. <tr id="x5" onclick="pos(this);"><td>5</td><td>5</td></tr>
  10. <tr id="x6" onclick="pos(this);"><td>6</td><td>6</td></tr>
  11. </table>
  12. <table id="tab2" border='0' cellspacing='0' cellpadding='0' style='height:30px; width:600px; background:yellow'>
  13. <tr id="x7" onclick="pos(this);"><td>7</td><td>7</td></tr>
  14. <tr id="x8" onclick="pos(this);"><td>8</td><td>8</td></tr>
  15. <tr id="x9" onclick="pos(this);"><td>9</td><td>9</td></tr>
  16. </table>
  17. </div>
  18.  
  19. function pos(e){
  20. alert(e.offsetTop)
  21. }


OK z problemem sobie poradzilem. Ale na przyszlosc jak by ktos tez mial z tym problem to trzeba DIV-owi o ID tabelka nadac pozycje relatywna style="position: relative" i taki kod wiersz.offsetParent.offsetTop + wiersz.offsetTop; zalatwia sprawe. Chyba ze ktos ma inne rozwiazanie to moze napiszac.

Pozdrawiam smile.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.