Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [JavaScript] .mousedown połączone z .mousemove
Forum PHP.pl > Forum > Przedszkole
!*!
[JAVASCRIPT] pobierz, plaintext
  1. $('#canvas').mousedown(function(event) {
  2.  
  3. /* ... */
  4.  
  5.  
  6. $(document.createElement('div')).css({ 'left': gridx+'px', 'top': gridy+'px', 'background-image': 'url('+tileBg+')' }).appendTo('#canvas');
  7.  
  8. });
[JAVASCRIPT] pobierz, plaintext


Tak dodaję kolejny div po kliknięciu w danym obszarze... jednak jak podczepić pod to opcje .mousemove w jquery? aby powyższa metoda działa również gdy przeciągam mysz trzymając wciśnięty klawisz
kamil4u
Opisz dokładniej... proszę smile.gif
!*!
#canvas ma wymiary 500x500px gdy klikam w jego zasięgu tworzy się div w nim. chciałbym aby ten div tworzył się też w wypadku gdy mam wciśnięty przycisk myszy i jednocześnie przesuwam myszą w jakimś kierunku.
kamil4u
Ale cały czas ma się tworzyć?

Mniejsza... Nadal średnio rozumiem, ale w zależności o co chodzi masz 2 wyjścia:
1. gdy albo klikasz albo przesuwasz:
[JAVASCRIPT] pobierz, plaintext
  1. $('#canvas').mousedown(function(event) {
  2. /* ... */
  3. $(document.createElement('div')).css({ 'left': gridx+'px', 'top': gridy+'px', 'background-image': 'url('+tileBg+')' }).appendTo('#canvas');
  4. }).mousemove(function(){ $(this).mousedown(); });
[JAVASCRIPT] pobierz, plaintext


2. gdy klikasz i przesuwasz:
[JAVASCRIPT] pobierz, plaintext
  1. flaga = false;
  2. $('#canvas').mousedown(function(){ flaga = true; });
  3. $('#canvas').mouseup(function(){ flaga = false; });
  4.  
  5. $('#canvas').mousemove(function(){ if(flaga){
  6. /*Operacje gdy myszka jest wciśnięta i przesuwasz myszkę*/
  7. }});
[JAVASCRIPT] pobierz, plaintext
!*!
Zapomniałem wczoraj podać link do przykładu http://jsfiddle.net/73vp3/ chciałbym, aby te divy były tworzone w trakcie gdy mam wciśnięty klawisz myszy i tworzyły się tam gdzie aktualnie się ona znajduje, tak samo jak po kilknięciu. Męczę się z tym już jakiś czas i żadna opcja z .mousemove nie działa.
kamil4u
Musisz skrócić kod, bo ja tylko kopiowałem, ale masz: http://jsfiddle.net/73vp3/1/
!*!
Mam jeszcze pytanie odnośnie, gdy umieszczę div #canvas w jakimś innym divie który ma overflow:auto a #canvas jest większy to pojawia się scroll, jednak dodawanie tych divów nie działa dokładnie tam gdzie umieszczony jest kursor względem pozycji diva który został przewinięty.

http://jsfiddle.net/73vp3/3/

Jak to wyliczyć? Aby działało to dokładnie w ten sam sposób tylko z możliwością przesuwania w innym divie.
kamil4u
Mam mało czasu, ale jak to( http://kamil.contrel.pl/map/ ) przeanalizujesz to pewnie będziesz miał to co potrzebujesz.
!*!
Dzięki już zrobiłem, teraz kombinuję jak zamienić to na dodawanie "tile" obok siebie.

http://jsfiddle.net/73vp3/5/

Mam wyliczyć w pętli pozycje każdego pola i zapisać je do tablicy? Czy może da się to zrobić prościej tak aby obrazek był nakładany obok drugiego i pod spodem, tworząc tym samym widok izometryczny.
kamil4u
Opisz dokładniej - Twój kod na razie nic nie robi(w sensie wizualnym) - dlaczego?.
!*!
Obrazek się nie wyczytywał http://jsfiddle.net/73vp3/7/

Po kliknięciu na tile trawy, można go układać w divie. Jednak chciałbym aby był on układany izometrycznie aby uzyskać taki efekt. Czyli musiałbym odejmować wysokość i szerokość tile względem jego pozycji. Jednak tu mam problem, bo nie wiem jak zrobić aby było to obliczane dla każdego tak aby układały się obok siebie.
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.