Autor | Zpráva | ||
---|---|---|---|
skor Profil |
#1 · Zasláno: 24. 10. 2009, 21:35:36
Mám logo stránky a chci aby se mi náhodně pohybovalo, ale z nějakého důvodu se mi nechce rozhýbat.
Přikládám kód: <html> <head> <title>horní lišta</title> <style> #logo {border-width:2px; border-style:double; border-color:red; width:150px; height:150px;} #logo-kruh {position:absolute; left:0px; top:0px;} </style> <script> var zleva=0; var zhora=0; function nahodnypohyb(co) { doleva=Math.ceil(Math.random()*3)-2+zleva; dolu=Math.ceil(Math.random()*3)-2+zhora; document.getElementById(co).style.top=dolu+"px"; document.images[co].style.left=doleva."px"; zleva=doleva; zhora=dolu; }; function zacni(casto,co){interval=setInterval(nahodnypohyb(co),casto)} </script> </head> <body> <script>zacni(1000,"logo-kruh")</script> <table align="left" id="logo"><tr><td> <img src=logo-kruh.gif id=logo-kruh></td></tr></table> </body> </html> |
||
_es Profil |
#2 · Zasláno: 24. 10. 2009, 23:43:56 · Upravil/a: _es
skor:
Prvý argument funkcie setInterval by mal byť funkcia alebo reťazec (horší variant). Ty tam zadávaš až návratovú hodnotu funkcie nahodnypohyb. Teda pre opakovanie po 1 s: setInterval(f, 1000); // kde f je nejaká funkcia, alebo: setInterval(function(){/* nejaký spustiteľný kód */}, 1000); |
||
skor Profil |
#3 · Zasláno: 25. 10. 2009, 12:02:03
Jak to mám teda opravit a kde?
|
||
_es Profil |
#4 · Zasláno: 25. 10. 2009, 12:25:13
skor:
K oprave máš úplné informácie. Snaž to trochu aj pochopiť a nečakať, že ti niekto poradí úplne všetko. |
||
skor Profil |
#5 · Zasláno: 25. 10. 2009, 16:02:40
opravil jsem to takto a stejně nefunguje:
<html> <head> <title>horní lišta</title> <style> #logo {border-width:2px; border-style:double; border-color:red; width:150px; height:150px;} #logo-kruh {position:absolute; left:0px; top:0px;} </style> <script> var zleva=0; var zhora=0; function nahodnypohyb(co) { doleva=Math.ceil(Math.random()*3)-2+zleva; dolu=Math.ceil(Math.random()*3)-2+zhora; document.getElementById(co).style.top=dolu+"px"; document.images[co].style.left=doleva."px"; zleva=doleva; zhora=dolu; }; function zacni(casto,co){interval=setInterval(function(){nahodnypohyb(co)},casto)} </script> </head> <body> <script>zacni(1000,"logo-kruh")</script> <table align="left" id="logo"><tr><td> <img src=logo-kruh.gif id=logo-kruh></td></tr></table> </body> </html> |
||
_es Profil |
#6 · Zasláno: 25. 10. 2009, 16:14:52
skor:
Skontroluj si celý kód na všetky chyby. Mimochodom funkcia nahodnypohyb je definovaná dosť divne. Asi by mala byť univerzálna na použitie na viaceré objekty súčasne, no keďže používa globálne premenné, tak by sa tie premenné pre viaceré objekty súčasne "bili". |
||
skor Profil |
#7 · Zasláno: 27. 10. 2009, 16:24:09
Prošel jsem to asi desetkrát a žádnou chybu nevidím, právě proto jsem to sem dal do diskuse.
Ale jinak ti děkuji za pomoc. |
||
Moab Profil |
#8 · Zasláno: 27. 10. 2009, 16:43:01
Má tam bejt
setInterval("nahodnypohyb(co)",casto) |
||
_es Profil |
#9 · Zasláno: 27. 10. 2009, 19:48:59
Moab:
„Má tam bejt“ Nemá, to nie je dobrý variant, aj keď funguje. skor: Čo má asi tak robiť ten príkaz na 22. riadku druhého kódu? |
||
Chamurappi Profil |
#10 · Zasláno: 28. 10. 2009, 00:00:49
Reaguji na _es:
„to nie je dobrý variant, aj keď funguje“ Řekl bych, že v tomto případě ani nefunguje, protože řetězec se vyhodnotí v globálním kontextu a tam „co“ neexistuje. Reaguji na skora: Moaba ignoruj. Ten 22. řádek skutečně bije do očí. |
||
skor Profil |
#11 · Zasláno: 28. 10. 2009, 21:45:16
Ten 22.řádek tam byl původně napsán jako 21. řádek,ale pak jsem zkoušel různý změny a tahle blbost tam zůstala, takže tou to není.
Moabe je to nejspíš špatně ale děkuji. Chamurappi tobě taky děkuju hodně si pomohl. |
||
_es Profil |
#12 · Zasláno: 29. 10. 2009, 00:34:34 · Upravil/a: _es
skor:
„a tahle blbost tam zůstala, takže tou to není.“ Ak je vo funkcii takáto syntaktická chyba, tak potom nenastane definovanie celej funkcie a teda nemôžu byť spustené ani skoršie ani neskoršie príkazy vo funkcii. |
||
Časová prodleva: 14 let
|
0