![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 62 Pomógł: 0 Dołączył: 17.03.2005 Ostrzeżenie: (0%) ![]() ![]() |
W jaki sposób wywołać funkcję w JS tylko na określony czas? Mam kod:
Kod function handle(delta) { if (delta < 0) JAKIEŚ WYWOŁANIE else NASTĘPNE WYWOŁANIE } Problem jest jednak taki, że skrypt wywołuje funkcję, której nie da się zatrzymać. Jest kod zatrzymujący funkcję, jednak nie da się zwrócić ponownie wartości zerowej - delta po wykonaniu akcji ze skryptu jest albo 1 albo -1 i dlatego nie ma gdzie wkleić fragmentu zatrzymującego funkcji. Nie ma jak wywołać delta = 0. Całość ogólnie odpowiada za scrollowanie myszką, na bazie tego skryptu. Rozwiązania widzę takie: albo wywołanie funkcji tylko na krótki fragment (rozwiązanie trochę na około) albo modyfikacja warunków pod takim kątem, aby wywoływały wartości zerowe, wtedy wkleiłoby się skrypt zatrzymujący akcję. W JS nie jestem zbytnio zorientowany, dlatego może się to wydawać proste, jednak ciężko mi znaleźć działające rozwiązanie - już praktycznie pół dnia mi na to zeszło... |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 271 Pomógł: 4 Dołączył: 5.01.2005 Ostrzeżenie: (0%) ![]() ![]() |
a nie łatwiej.. liczyć czas?
na początku ustawiasz sobie zczytany czas+ile ma trwać a potem przy każdym przetworzeniu funkcji sprawdzasz czy aktualny czas jest mniejszy od ustawionego czasu zakończenia.. jeśli jest mniejszy przerywasz wykonywanie funkcji czy co tam chcesz? |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 62 Pomógł: 0 Dołączył: 17.03.2005 Ostrzeżenie: (0%) ![]() ![]() |
funkcję mogłoby wykonywać np. tylko przez 500ms, jednak nie wiem jak zastosować to od strony kodu... mógłbyś mi pomóć?
myślałem, że jest w JS możliwość jak np. setTimeout - tylko wykonuje funkcję przez dany czas, a potem wywołuje inną, zatrzymującą to na czym się opieram, świetnie się sprawdza przy onMouseOver oraz onMouseOut - tu świetnie działa, ale z tym scrollem już tak łatwo nie jest |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 271 Pomógł: 4 Dołączył: 5.01.2005 Ostrzeżenie: (0%) ![]() ![]() |
coś na szybkiego z palca
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 1 675 Pomógł: 286 Dołączył: 15.06.2009 Skąd: Wieliczka Ostrzeżenie: (0%) ![]() ![]() |
coś na szybkiego z palca
coś takiego już jest i nazywa się setTimeout() |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 1 332 Pomógł: 294 Dołączył: 12.10.2008 Skąd: Olkusz Ostrzeżenie: (0%) ![]() ![]() |
coś takiego już jest i nazywa się setTimeout() nie - poczytaj co to jest setTimeout() - jakie wywołuje działąnie a potem przyjrzyj się kodowi na który tylko rzuciłem okiem a nie testowałem... [edit] taka mała podpowiedź - tutaj w ciągu tej jednej sekundy funkcja wykona się tyle razy ile zdąży - na ile jej optymalny kod pozwoli bądź szybkość kompa ;p - ale to nie będzie trwało dłużej niż 1s - no może nie do końca gdyż lekko może przekroczyć w ostatnim warunku te 1000ms ;p - ale szkoda się wgłębiać... Ten post edytował zegarek84 24.07.2009, 10:44:33 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 17.09.2025 - 14:17 |