Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> wyciagniecie nazwy obrazka i pozycji kursora nanim
cornholio666
post
Post #1





Grupa: Zarejestrowani
Postów: 472
Pomógł: 8
Dołączył: 14.03.2004
Skąd: Rzeszów

Ostrzeżenie: (0%)
-----


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 ?
Go to the top of the page
+Quote Post
FiDO
post
Post #2





Grupa: Przyjaciele php.pl
Postów: 1 717
Pomógł: 0
Dołączył: 12.06.2002
Skąd: Wolsztyn..... Studia: Zielona Góra

Ostrzeżenie: (0%)
-----


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 (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
cadavre
post
Post #3





Grupa: Zarejestrowani
Postów: 472
Pomógł: 7
Dołączył: 7.12.2005
Skąd: Gliwice

Ostrzeżenie: (0%)
-----


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. ?>
Go to the top of the page
+Quote Post
cornholio666
post
Post #4





Grupa: Zarejestrowani
Postów: 472
Pomógł: 8
Dołączył: 14.03.2004
Skąd: Rzeszów

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post
FiDO
post
Post #5





Grupa: Przyjaciele php.pl
Postów: 1 717
Pomógł: 0
Dołączył: 12.06.2002
Skąd: Wolsztyn..... Studia: Zielona Góra

Ostrzeżenie: (0%)
-----


Ad2) na przyklad z tad: http://www.quirksmode.org/index.html?/js/findpos.html
Go to the top of the page
+Quote Post
orson
post
Post #6





Grupa: Zarejestrowani
Postów: 548
Pomógł: 2
Dołączył: 19.07.2003

Ostrzeżenie: (0%)
-----


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'] ( _ (IMG:http://forum.php.pl/style_emoticons/default/exclamation.gif) ) to będzie współrzędna x kliknięcia na obrazku ...

pozdrawiam
Go to the top of the page
+Quote Post
cornholio666
post
Post #7





Grupa: Zarejestrowani
Postów: 472
Pomógł: 8
Dołączył: 14.03.2004
Skąd: Rzeszów

Ostrzeżenie: (0%)
-----


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>
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.08.2025 - 16:09