![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 130 Pomógł: 2 Dołączył: 6.06.2008 Skąd: jesteś ? Ostrzeżenie: (0%) ![]() ![]() |
Witam. Stworzyłem sobie takie cuś a w nim "funkcja" która jest odpowiedzialna za zmiane przezroczystości. I problem jest w warunku, bo tak jakby go omija. Wiem że setTimeout było by lepsze ale nie potrafję go użyć.
Chcę osiągnąć efekt preoladera.
|
|
|
![]()
Post
#2
|
|
![]() Newsman Grupa: Moderatorzy Postów: 2 033 Pomógł: 290 Dołączył: 21.12.2007 Skąd: Łódź ![]() |
Jak chcesz wywołać f-cję, biorąc jej nazwę w cudzysłowy? -------------------- Life's simple... You make choices and don't look back...
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 130 Pomógł: 2 Dołączył: 6.06.2008 Skąd: jesteś ? Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#4
|
|
![]() Newsman Grupa: Moderatorzy Postów: 2 033 Pomógł: 290 Dołączył: 21.12.2007 Skąd: Łódź ![]() |
Cytat Innaczej się nie da. Racja, mój błąd. Ale wywołujesz f-cję zs() z parametrem 's', ale w samej funkcji już go nie obsługujesz nigdzie.
Powód edycji: [blooregard]:
-------------------- Life's simple... You make choices and don't look back...
|
|
|
![]()
Post
#5
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Kod setInterval("zs()", 100); I tak, setTimeout bylby lepszy. Teraz funkcja bedzie ci sie nonstop wywolywac co 100 ms -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 2 178 Pomógł: 596 Dołączył: 25.09.2009 Skąd: Piwniczna-Zdrój Ostrzeżenie: (0%) ![]() ![]() |
Żeby zatrzymać setInterval to dodajesz sobie trzecią zmienną, np.:
var intervalId = 0; W momencie wywołania funkcji setInterval podpinasz ją do zmiennej intervalId: intervalId = setInterval("zs()", 100); i jeśli d nie jest mniejsze od 100 (czyli w bloku else) czyścisz interwał: clearInterval(intervalId); |
|
|
![]()
Post
#7
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Cytat i jeśli d nie jest mniejsze od 100 (czyli w bloku else) czyścisz interwał: Drobna poprawka:w tym kodzie trzeba to dac w funkcji. Blok IF lezy poza funkcją i jest tylko raz wywolany wiec do else nie dojdzie ![]() -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 2 178 Pomógł: 596 Dołączył: 25.09.2009 Skąd: Piwniczna-Zdrój Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#9
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Cytat Opcjonalnie można zmodyfikować nieco funkcję zs(). Mianowicie na końcu dajemy: No wlasnie o tym mowilem w poprzednim poscie, bez zadnego "opcjonalnie" ![]() -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 2 178 Pomógł: 596 Dołączył: 25.09.2009 Skąd: Piwniczna-Zdrój Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 130 Pomógł: 2 Dołączył: 6.06.2008 Skąd: jesteś ? Ostrzeżenie: (0%) ![]() ![]() |
Żeby zatrzymać setInterval to dodajesz sobie trzecią zmienną, np.: var intervalId = 0; W momencie wywołania funkcji setInterval podpinasz ją do zmiennej intervalId: intervalId = setInterval("zs()", 100); i jeśli d nie jest mniejsze od 100 (czyli w bloku else) czyścisz interwał: clearInterval(intervalId); Racja. Zrobiłem tak:
Tylko że teraz to liczby przeskakują i coraz szybciej jest. |
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 2 178 Pomógł: 596 Dołączył: 25.09.2009 Skąd: Piwniczna-Zdrój Ostrzeżenie: (0%) ![]() ![]() |
Przedtem miałeś dobrze, wystarczyło tylko w odpowiednie miejsca wstawić te trzy podane linie i wyrzucić w ogóle blok else (jak słusznie zauważył nospor).
|
|
|
![]()
Post
#13
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
bo setInterval nikt ci nie kazal dawac do funkcji. Ma zostac tam gdzie bylo. do funkcji miales dodac tylko clearInterval
-------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#14
|
|
Grupa: Zarejestrowani Postów: 130 Pomógł: 2 Dołączył: 6.06.2008 Skąd: jesteś ? Ostrzeżenie: (0%) ![]() ![]() |
Dzięki wielkie
![]()
|
|
|
![]()
Post
#15
|
|
Grupa: Zarejestrowani Postów: 1 332 Pomógł: 294 Dołączył: 12.10.2008 Skąd: Olkusz Ostrzeżenie: (0%) ![]() ![]() |
Jak chcesz wywołać f-cję, biorąc jej nazwę w cudzysłowy? Innaczej się nie da. Racja, mój błąd. jaki błąd ![]() ![]() ![]() ![]() przykład choćby tutaj ![]() http://forum.php.pl/index.php?s=&showt...st&p=740585 -------------------- Jeśli twoja ręka rusza do przodu powstrzymaj swój gniew; gdy wyprzedza cię twój gniew - wycofaj rękę.
|
|
|
![]()
Post
#16
|
|
Grupa: Zarejestrowani Postów: 2 178 Pomógł: 596 Dołączył: 25.09.2009 Skąd: Piwniczna-Zdrój Ostrzeżenie: (0%) ![]() ![]() |
@zegarek84 Może warto by było wyjaśnić, dlaczego się da i kiedy się nie da, a nie tylko stwierdzać niepełne fakty. A nie da się wtedy, kiedy funkcja posiada jakieś argumenty (czyli musimy użyć nawiasów (), aby te argumenty podać). Dla funkcji przedstawionej na początku przez Woytek950 się nie dało. |
|
|
![]()
Post
#17
|
|
Grupa: Zarejestrowani Postów: 1 332 Pomógł: 294 Dołączył: 12.10.2008 Skąd: Olkusz Ostrzeżenie: (0%) ![]() ![]() |
ZAWSZE SIĘ DA
![]() a może pasowało by przeczytać cały temat i zajrzeć co tam jest napisane w tym linku?? ale ok... Da się zawsze wtedy gdy jako argument do setInterval podajemy nazwę funkcji bez nawiasów (wtedy nie może to być jako tekst...)... W podanym linku wspomnialem o pewnej możliwości o której też pisalem by zapomnieć gdyż działa tylko na operze i mozilli - a mianowicie kolejne argumenty powyżej drugiego dla funkcji setInterval są argumentami funkcji wywoływanej [NIE STOSOWAĆ - ZAPOMNIJCIE, ŻE O TYM PISAŁEM!!!], a jest jeszcze jeden sposób którego nie stosować bo nie działa na IE, a mianowicie jako pierwszy argument funkcja anonimowa czyli function(){bleble...}... JAK PRZEKAZAĆ ARGUMENTY FUNKCJI?? - oto jest pytanie gdzie była zawarta odpowiedź i przykład [a raczej rozwiązanie tamtego tematu] w podanym wcześniej prze zemnie linku... odpowiedź jest banalna i działa na wszystkich przeglądarkach, a mianowicie wystarczy poczytać o zasięgu zmiennych w JavaScript, o zmiennych prywatnych i globalnych... ustawiamy gdzieś zmienne jakie potrzebne są w ciele funkcji poza nią w hierarchii wyżej by zmienne były widoczne w wykonywanej funkcji... odpalamy funkcje i wszystko chodzi i hula - prosty przykład w podanym linku ![]() ![]() ![]() a bardziej złożone rozwiązanie przy hermetyzacji z setTimeout lub także z setInterval jest w temacie: [jQuery] Snake, Wężyk z prostą grafą. - w dalszej części tego tematu ciąg tekstowy został zastąpiony funkcją... i jest tam napisane, iż jeśli korzystamy z ciągu tekstowego to to nas mocno ogranicza gdyż dana funkcja musi być dostępna i mieć podaną ścieżkę z globalnego obiektu window.... [EDIT] skoro został tutaj nawiązany dzisiaj deczko inny aspekt i akurat dzisiaj padło konkretniejsze pytanie tyczące się tego aspektu w innym temacie na forum daję jeszcze link do tegoż pytania dotyczącego funkcji setTimeout i setInterval [nie każdy musi od razu zrozumieć - ważne, że są przykłady i, że kiedyś może się przydać]: http://forum.php.pl/index.php?s=&showt...st&p=741983 Ten post edytował zegarek84 1.05.2010, 11:41:53 -------------------- Jeśli twoja ręka rusza do przodu powstrzymaj swój gniew; gdy wyprzedza cię twój gniew - wycofaj rękę.
|
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 13.06.2025 - 10:10 |