Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [JS] Klasa do przesuwania img po ekranie, kazdy obiekt zachowuje sie inaczej
comanderv
post
Post #1





Grupa: Zarejestrowani
Postów: 87
Pomógł: 1
Dołączył: 2.12.2008

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


witać,
mam klasę w JS która zajmuje sie animowanie obiektow, przesuwają je w prawo aż do granicy diva, później odpalana jest metoda do przesuwania w lewo az do granicy diva i wtedy znowu w lewo w prawo w lewo w prawo... dla jednego obiektu wszystko jest ok, wymierzone co do piksela, natomiast gdy dodam kolejne obiekty cos sie dzieje, kazdy zachowuje sie inaczej (kazdy nastepny obiekt ma wieksze odchylenie od granic), czy to jest blad klasy czy poprostu nie tedy droga czy jak?

calosc tutaj: http://www.rytroman.za.pl/maping/fish/fish.html

z góry dziękuje za pomoc (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
comanderv
post
Post #2





Grupa: Zarejestrowani
Postów: 87
Pomógł: 1
Dołączył: 2.12.2008

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


cos jest w tej klasie nie tak, bo mimo ze za kazda animacja zmieniam this.x w tych funkcjach to jednak te wartosci nie odpowiadaja polozeniu img... dlatego zczytywalem te polozenia za pomoca getElementById ...
ja cos ogolnie chyba w tej klasie knoce... no nic pobawie sie tym jutro...
dzieki za starania (IMG:style_emoticons/default/smile.gif)

edit:

  1. this.plynprawo=function()
  2. {
  3. imgTag.src='ryba0.png';
  4. var tutaj=this;
  5. if(tutaj.x<550)
  6. {
  7. tutaj.x+=(tutaj.x<500)? 50 : 550-tutaj.x;
  8. $('#'+tutaj.id).animate({left: tutaj.x+'px'},
  9. 200,'linear',
  10. function() { tutaj.plynprawo(); } );
  11.  
  12. }
  13. else { //tutaj.plynlewo(); }
  14. tutaj.x; bl = document.getElementById(tutaj.id).style.left;
  15. alert(this.id+'---'+bl+'---'+tutaj.x);
  16. }
  17. }

Nie ma szans zebym tutaj cos zle liczyl (IMG:style_emoticons/default/sleep.gif)
poddaje sie...
http://www.rytroman.za.pl/maping/fish/fish.html
pozycja left:550px to pozycja maksymalna, dalej juz ryba wystaje poza (bo ma dlugosc 50px to img) wszystko licze na sztywno ustawiam do jakiego przesuniecia ma sie zanimowac, NIE WIEM CO JEST ZLE, na koncu ruchu wywalam .x (przesuniecie na jakim ma ryba wyladowac losow, pozniej ja zwiekszam ciagle) i .style.left i oba sa 550 tak jak ma byc! ale wyraznie widac ze kazda nowa ryba ma o 50px dalej polozenie mimo ze JS widzi ze kazda jest na 550px (IMG:style_emoticons/default/sleep.gif)
Pomocy ! (IMG:style_emoticons/default/wink.gif)

edit:
doszedlem do glupiego wniosku... .id mowi o przesunieciu... element o id 0 idzie idelanie, 1 juz o 50px za daleko, 2 o 100px zadaleko...itd...
wzialem to pod uwage w kodzie...
  1. this.plynprawo=function()
  2. {
  3. imgTag.src='ryba0.png';
  4. var tutaj=this;
  5. stab = this.id.split('fish');
  6. if(tutaj.x<550-(stab[1]*50))
  7. {
  8. tutaj.x+=(tutaj.x<500-(stab[1]*50))? 50 : 550-(stab[1]*50)-tutaj.x;
  9. $('#'+tutaj.id).animate({left: tutaj.x+'px'},
  10. 200,'linear',
  11. function() { tutaj.plynprawo(); } );
  12. }
  13. else
  14. {
  15. //tutaj.plynlewo(); }
  16. tutaj.x; bl = document.getElementById(tutaj.id).style.left;
  17. alert(this.id+'---'+bl+'---'+tutaj.x);
  18. }
  19. }

dzialac dziala... ALE, dlaczego na przesunicie na ekranie wplywa mi jakakolwiek zmienna ? (IMG:style_emoticons/default/sleep.gif)

edit: zrobic zrobilem.... ale to nie ma sensu ;/ im wieksze id (ost cyfra id... bo id ida 'fish0' 'fish1' 'fish2' ...) tym wieksze przesuniecie od krawedzi mam ktorego nawet JS nie dostrzega (IMG:style_emoticons/default/sleep.gif)

edit: sprawdzalem dla 18 elementow, nawet liczby losowe z przedzialu 0-150 dla niektorych wynosily ponad 600 (te liczby to mialy byc odsuniecia left i top)

Dlaczego ta klasa sie tak zachowuje?? na serwie max 12 rybek zeby sie nie psulo... potem juz za duze liczby wychodza i jakies przesuneicia chore... zapraszam do ogladania i szukania gdzies w tym logiki (IMG:style_emoticons/default/haha.gif)

klopot sprawialo "position: relative" zmienilem na "absolute" i wszystko ok...
dzieki za pomoc, do zamkniecia...

Ten post edytował comanderv 23.02.2011, 11:16:15
Go to the top of the page
+Quote Post

Posty w temacie


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: 13.10.2025 - 10:59