Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [JavaScript]pozycja zbliżona
Forum PHP.pl > Forum > Przedszkole
Gość
w jaki sposób mając jakąś grafikę mógłbym uzyskać najbliższe współrzędne podzielne przez 32 od punktu kliknięcia?
croc
Robisz np.:
  1. <input type="image" name="image" src="obrazek.png">

Po wysłaniu formularza:
  1. $x = round($_POST['image_x'] / 32) * 32;
  2. $y = round($_POST['image_y'] / 32) * 32;
Gość
chodzi mi wyłącznie o javascript.
[JAVASCRIPT] pobierz, plaintext
  1. x = Math.round(pos.left / 32) * 32;
  2. y = Math.round(pos.top / 32) * 32;
[JAVASCRIPT] pobierz, plaintext

no dobra, to mam. jeszcze jedno pytanko.

załóżmy że mam diva 512 x 512, jego background ma wielokrotnie większe rozmiary bo 1280 x 6332. jeśli kliknę na tego diva to po prostu pokaże mi pozycje absolutną. a jakby to wykminić, by pokazało pozycję kliknięcia względem obrazka? czyli tak jakby po zmianie background-position i kliknięciu w to samo miejsce na divie, pozycja się zmieni, bo obrazek również poleci gdzie indziej
croc
event.pageX - this.offsetLeft i event.pageY - this.offsetTop, gdzie this to obiekt, na który klikasz.
Gość
this.offsetTop i this.offsetLeft zwracają zawsze 0. chciałem użyć tego w jquery:
this.offset().left, ale konsola błędów mówi że this.offset is not a function.

[JAVASCRIPT] pobierz, plaintext
  1. $('#area').click(function(e) {
  2. $('body span').html((e.pageX - this.offsetLeft) + ',' + (e.pageY - this.offsetTop)); // zwraca normalną pozycje e.pageX e.pageY,
  3.  
  4. $('body span').html(this.offsetLeft + ',' + this.offsetTop); // 0,0
  5.  
  6. $('body span').html(this.offset().left + ',' + this.offset().top); //error w konsoli
  7. });
[JAVASCRIPT] pobierz, plaintext
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.