Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: wyciagniecie nazwy obrazka i pozycji kursora nanim
Forum PHP.pl > Forum > Po stronie przeglądarki > JavaScript
cornholio666
Witam

Mam na stronie powiedzmy 10 obrazkow. Chcialbym zeby przy kliknieciu mysza na ktorys z nich w jednym oknie formularza pojawila sie nazwa kliknietego obrazka (z rozszerzeniem) a w drugim oknie formularza pozycja myszy na tym obrazku w postaci x,y.

Punkt 0,0 znajduje sie w gornym lewym rogu.

Ma ktos jakis pomysl ?
FiDO
Kazdemu definiujesz eventa onclick:
  1. <img src="..." onclick="pokaz(event, this);" ... />


I teraz w tej funkcji pokaz() przez pierwszy parametr masz dostep do event'a, z ktorego mozesz pobrac wspolrzedne polozenia myszki w momencie klikniecia (szczegoly np. na www.quirksmode.org w dziale Javascript -> Events oraz W3C DOM -> Compatibility tables -> Events). Majac te wspolrzedne odejmujesz wspolrzedne obrazka i otrzymujesz w ten sposob wspolrzedne wzgledem lewego gornego rogu obrazka.
Nazwe obrazka pobierasz z drugiego parametru poprzez wlasciwosc .src.
To tyle na temat mojego pomyslu.. powodzenia smile.gif
cadavre
Nie mam pewności, ale było coś takiego:
  1. <input type="image" src="adres.jpg" name="obrazek1" />
i powiedzmy tam 20. takich w jedym <form action="skrypt.php">.
A w skrypcie skrypt.php:
  1. <?php echo "X:{$_GET['obrazek1.x']} Y:{$_GET['obrazek1.y']}
  2. ?>
cornholio666
znlazłem skrypt, przerobilem go troche ale nie wiem jak zrobic zeby, wpisywana przez skrypt pozycja odnosiła sie do obrazka a nie do przegladarki.

oto kod:

  1. <form name="Show">
  2. x,y <input type="text" name="MouseX" value="0" size="14"><br>
  3. nazwa obrazka <input type="text" name="obraz">
  4. </form>
  5. <img src="jakisobrazek.jpg" onclick="getMouseXY('','cos.jpg');">
  6.  
  7. <script language="JavaScript1.2">
  8. <!-- Original: CodeLifter.com (support@codelifter.com) -->
  9. <!-- Web Site: http://www.codelifter.com -->
  10.  
  11. <!-- This script and many more are available free online at -->
  12. <!-- The JavaScript Source!! http://javascript.internet.com -->
  13.  
  14. <!-- Begin
  15. var IE = document.all?true:false;
  16. if (!IE) document.captureEvents(Event.MOUSEMOVE)
  17. //document.onmousemove = getMouseXY;
  18. var tempX = 0;
  19. var tempY = 0;
  20.  
  21. function getMouseXY(e, obraz)
  22. {
  23. if (IE)
  24. { // grab the x-y pos.s if browser is IE
  25. tempX = event.clientX + document.body.scrollLeft;
  26. tempY = event.clientY + document.body.scrollTop;
  27. }
  28. else
  29. { // grab the x-y pos.s if browser is NS
  30. tempX = e.pageX;
  31. tempY = e.pageY;
  32. }
  33. if (tempX < 0){tempX = 0;}
  34.  
  35. if (tempY < 0){tempY = 0;}
  36.  
  37. document.Show.MouseX.value = tempX+','+tempY;
  38. document.Show.obraz.value = obraz;
  39. return true;
  40. }
  41.  
  42.  
  43. // End -->


Niezabardzo rozumiem:

Cytat
Majac te wspolrzedne odejmujesz wspolrzedne obrazka i otrzymujesz w ten sposob wspolrzedne wzgledem lewego gornego rogu obrazka.


1. wspolrzedne mam wzgledem przegladarki
2. Skad mam wziać wspolrzedne obrazka
FiDO
Ad2) na przyklad z tad: http://www.quirksmode.org/index.html?/js/findpos.html
orson
witam ...

najprościej jednak (bez żadnego skryptu - każda przeglądarka) będzie to zrobić na inpucie ...
Kod
<input type="image" src="adres.jpg" name="obrazek1" />

Tylko potem nie $_GET['obrazek1.x'] tylko $_GET['obrazek1_x'] ( _ exclamation.gif) to będzie współrzędna x kliknięcia na obrazku ...

pozdrawiam
cornholio666
Dzieki za podpowiedzi rozwiazanie ponizej dla zainteresowanych:

  1. <form name="Show">
  2. x,y <input type="text" name="MouseX" value="0" size="14"><br>
  3. nazwa obrazka <input type="text" name="obraz">
  4. </form>
  5.  
  6. <img src="jakis.jpg" onclick="getMouseXY('','jakis.jpg',this)">
  7. <script language="JavaScript1.2">
  8.  
  9.  
  10. <!-- Begin
  11. var IE = document.all?true:false;
  12. if (!IE) document.captureEvents(Event.MOUSEMOVE)
  13. //document.onmousemove = getMouseXY;
  14. var tempX = 0;
  15. var tempY = 0;
  16.  
  17. function getMouseXY(e, obraz, obj)
  18. {
  19. var curleft = 0;
  20. var curtop = 0;
  21.  
  22. if (IE)
  23. { // grab the x-y pos.s if browser is IE
  24. tempX = event.clientX + document.body.scrollLeft;
  25. tempY = event.clientY + document.body.scrollTop;
  26. }
  27. else
  28. { // grab the x-y pos.s if browser is NS
  29. tempX = e.pageX;
  30. tempY = e.pageY;
  31. }
  32. if (tempX < 0)
  33. {
  34. tempX = 0;
  35. }
  36.  
  37. if (tempY < 0)
  38. {
  39. tempY = 0;
  40. }
  41.  
  42. if (obj.offsetParent)
  43. {
  44. while (obj.offsetParent)
  45. {
  46. curleft += obj.offsetLeft
  47. curtop += obj.offsetTop
  48. obj = obj.offsetParent;
  49. }
  50. }
  51. else if (obj.x)
  52. curleft += obj.x;
  53.  
  54. else if (obj.y)
  55. curtop += obj.y;
  56.  
  57. document.Show.MouseX.value = (tempX - curleft) +','+ (tempY - curtop);
  58. document.Show.obraz.value = obraz;
  59.  
  60. return true;
  61. }
  62.  
  63.  
  64. // End -->
  65. </body>
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.