[JS/HTML] Wykrywanie pozycji diva wewnątrz innego diva

0

Postaram się wyjaśnić sprawę w miarę prosto.

Chciałem za pomocą jQuery stworzyć mechanizm podobny do tych z mapek - czyli jest układ

<obrazki -="-" ja="ja" mam="mam" divy="divy" chyba="chyba" zawsze="zawsze" są="są" to="to" kwadraty="kwadraty" dlatego="dlatego" i="i" kwadratowe="kwadratowe" akurat="akurat" zielone="zielone" (jak="(jak" w="w" tym="tym" temacie)="temacie)">

Mój pomysł polega na tym, że mając np szachownice o rozmiarach np 8x8 przy przesuwaniu gdy wykrywam, że

przesunął się tak bardzo że widać już jakiś jego bok - przesuwam divy z przeciwnej strony na wolne miejsce</p>

postarałem się to jakoś zobrazować

http://www.fototube.pl/pictures/przesuwaniepoeloezenie.jpeg
lub
http://s3.zapodaj.net/58753971.jpg.html

Ogólnie dużo jest zrobione, ale całość rozbija się o wykrywanie czy div-przesuwany jest w takim położeniu, że ramka jakaś część ramki jest pusta

próbowałem różnych sposobów, ale żaden nie zdał egzaminu - łącznie w połączeniu z opóźnieniem (setTimeout ustawiałem)

zaciąłem się i nie wiem jak ruszyć z miejsca - jakby ktoś miał pomysł, przykład jakiś to bardzo bym prosił

user image

0

tak to zobrazowałeś że nie rozumiem o co ci chodzi całkiem
ale ignorując fragment z obrazowaniem doszedłem do wniosku że chodzi ci o zrobienie zwykłego obrazka który możesz przesuwać z tym że żeby mieć wrażenie jego "nieskończoności"
najłatwiej w divie podrzędnym ustawić stałą wielkość, a obrazek jako jego tło z pełnym repeat, potem tylko regulujesz przesunięcie tła i wszystko

jeżeli chcesz podzielić mapkę na mniejsze obszary (żeby nie ładować całej "mapy" na raz oszczędzając czas i łącze) to najłatwiej sklonować pierwszą kolumnę i rząd i przy przesuwaniu dzielić modulo pozycję przesunięcia przez szerokość faktyczną mapki

0

On chce coś takiego co się nazywa Google Maps :D
Poczytaj o tym, bo tego nawet do pisania mojej gry via AJAX używam.
http://code.google.com/intl/pl/apis/maps/documentation/examples/map-simple.html
http://code.google.com/intl/pl/apis/maps/documentation/examples/map-animate.html

Ewentualnie, jeśli nie możesz się ni cholery połapać w tym to zalecam Ci kombinacje z mintAJAX.
http://mintajax.pl/Przewodnik/Drag-n-Drop/
Zbadałem Firebugiem jak oni w tym przewodniku to zaimplementowali. Odpowiedź jest prosta. Tak jak ja użyli iframe i tam usytuowali ten kwadrat. W efekcie jeśli coś jest wsunięte za mocno w górny róg, to top wynosi wartość ujemną. Jeśli coś wywalono na lewo to wartość left będzie ujemna. W przypadkach prawo i dół wartości wynoszą więcej niż wielkość iframe.

Znalazłem też to z czego ja korzystałem:
http://www.maptiler.org/google-maps-coordinates-tile-bounds-projection/

0

dla zainteresowanych - takie moje mapkowanie

http://www.fraglesrozne.yoyo.pl/mapkowanie/

mi mniej więcej chodziło o cos takiego - po długich poszukiwaniach wreszcie coś zrobilem co działa (mam nadzieję, że stabilnie, chociaz testowałem dokładnie)

jakby ktoś miał jakieś uwagi, że można lepiej, wydajniej, inaczej to chętnie posłucham

ps - na razie szukam sposobu na ograniczenia ruchu, jak to zrobić - np dochodzi do 0 czy max - i żeby się w tą stronę nie dało przesunąć

0

Prowizorycznie to ja polecam po prostu ograniczenie jak left jest przykładowo mniejszy niż: 31744px to zwracamy false. Ogólnie nie wiem po co tyle tego narobiłeś. X=0 to 0px w lewo, a Y=0 to 0px w górę i masz od razu rozwiązaną kwestię obliczania dwóch pozostałych wymiarów (po prostu maxX * bok [poziomy] + maxY * bok [pionowy]).

1 użytkowników online, w tym zalogowanych: 0, gości: 1