Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [js] pozycja kliknięcia w link
Forum PHP.pl > Forum > Po stronie przeglądarki > JavaScript
TomASS
Witam. Jak przy pomocy JS po kliknięciu na link odebrać pozycję (X i Y) kliknięcia?

Dzięki!
Cezar708
  1. <script (...)>
  2. // sprawdza czy IE
  3. var IE = document.all?true:false
  4.  
  5. // obsługuje dla NS
  6. if (!IE) document.captureEvents(Event.MOUSEMOVE)
  7.  
  8. // tu wlaczenie jakby na stale wywoływanie funkcji przy ruchu myszka
  9. // getMouseXY zdefiniowana ponizej
  10. document.onmousemove = getMouseXY;
  11.  
  12. // w tych dwoch zmiennych globalnych jest zapisana wartosc gdzie znajduje sie aktualnie myszka
  13. var tempX = 0
  14. var tempY = 0
  15.  
  16. // no i funkcja, ktora to pobiera
  17.  
  18. function getMouseXY(e) {
  19. if (IE) { // dla IE
  20. tempX = event.clientX + document.body.scrollLeft
  21. tempY = event.clientY + document.body.scrollTop
  22. } else { // dla normalnych przegladarek
  23. tempX = e.pageX
  24. tempY = e.pageY
  25. }
  26. // niektore przegladarki potrafia wrzucac wartosci ujemne (np NS4)
  27. if (tempX < 0){tempX = 0}
  28. if (tempY < 0){tempY = 0}
  29. return true
  30. }
  31.  
  32. no i wywołanie oczywiście
  33.  
  34. <button onClick="alert('X='+tempX+' Y='+tempY)">
  35. sprawdz wartosc
TomASS
Dzięki! smile.gif
phpion
Podepnę się pod temat.
Czy jest możliwość określenia współrzędnych kliknięcia w obrazek? Powyższy przykład podaje współrzędne myszki względem całej strony, ale czy jest możliwość ograniczenia obszaru jedynie do obrazka? Lewy górny róg obrazka byłby punktem 0,0. Potrzebne mi to jest do określania położenia na mapie i nie widzę na razie innego wyjścia jak otworzenie mapy jako popup z body {margin: 0px;} i pobranie współrzędnych stamtąd. Chyba, że istnieje możliwość uściślenia obszaru?
legorek
Jasne, wystarczy odjąć od współrzędnych kliknięcia współrzędne obrazka.

Problem skąd wziąć współrzędne obrazka, ano jeśli ma jakieś id, które znamy, wystarczy getElementById i element.style.left lub element.offsetLeft. Przy czym element.style.left zwróci np '100 px' a element.offsetLeft samo 100. Doczytaj sobie na http://developer.mozilla.org/en/docs/DOM:element
phpion
Dzięki serdeczne, to będzie to!
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.