Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [javascript]pozycja elementu
Forum PHP.pl > Forum > Po stronie przeglądarki
kubarek
Witam
Jest kod, który ma za zadanie wyświetlić menu kontekstowe po kliknięciu na link:
  1. <script type="text/javascript">
  2. function e(id) { return document.getElementById(id); }
  3. function use(el){
  4. popup=e('popup_menu');
  5. popup.style.display="block"; // pokaz menu
  6. popup.style.left = ... +'px'; // ustaw pozycje x - jak ?
  7. popup.style.top = ... +'px'; // ustaw pozycje y - jak ?
  8. }
  9. ...
  10. <a href="" onclick="use(this);">el1</a><br />
  11. <a href="" onclick="use(this);">el2</a><br />
  12. <a href="" onclick="use(this);">el3</a><br />
  13. <a href="" onclick="use(this);">el4</a><br />
  14. ...

Pytanie: w jaki sposób pobrać pozycję elementu el ? Chciałbym, żeby menu było umieszczone bezpośrednio pod elementem, na który się kliknęło. Coś w tym stylu ( użytkownik kliknął na el3 ).

Dzięki z góry za pomoc.
batman
Zgaduję, że chodzi Ci o taką funkcję:

Kod
function findPos(obj) {
    var nleft = 0;
    var ntop = 0;
    if (obj.offsetParent) {
        nleft = obj.offsetLeft
        ntop = obj.offsetTop
        while (obj = obj.offsetParent) {
            nleft += obj.offsetLeft
            ntop += obj.offsetTop
        }
    }
    return [nleft,ntop];
}


Funkcja zwraca tablicę [pozycja_od_lewej, pozycja_od_gory] dla zadanego elementu. Jako argument, funkcja przyjmuje obiekt HTML uzyskany z np. getElementById(). Funkcja ta nie wymaga, by element, którego pozycję chcesz uzyskać, był pozycjonowany absolutnie.
kubarek
działa smile.gif
dziękuję
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.