![]() ![]() |
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ź |
|
|
|
|
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]:
|
|
|
|
Post
#5
|
|
|
Grupa: Moderatorzy Postów: 36 561 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 |
|
|
|
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 561 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 (IMG:style_emoticons/default/winksmiley.jpg) |
|
|
|
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 561 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" (IMG:style_emoticons/default/winksmiley.jpg)
|
|
|
|
Post
#10
|
|
|
Grupa: Zarejestrowani Postów: 2 178 Pomógł: 596 Dołączył: 25.09.2009 Skąd: Piwniczna-Zdrój Ostrzeżenie: (0%)
|
No wlasnie o tym mowilem w poprzednim poscie, bez zadnego "opcjonalnie" (IMG:style_emoticons/default/winksmiley.jpg) Przepraszam, źle zrozumiałem Twoją odpowiedź. (IMG:style_emoticons/default/wstydnis.gif) |
|
|
|
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 561 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
|
|
|
|
Post
#14
|
|
|
Grupa: Zarejestrowani Postów: 130 Pomógł: 2 Dołączył: 6.06.2008 Skąd: jesteś ? Ostrzeżenie: (0%)
|
Dzięki wielkie (IMG:style_emoticons/default/yahoo.gif)
|
|
|
|
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 (IMG:style_emoticons/default/blinksmiley.gif) (IMG:style_emoticons/default/questionmark.gif) jakie nie da (IMG:style_emoticons/default/worriedsmiley.gif) (IMG:style_emoticons/default/questionmark.gif) przykład choćby tutaj (IMG:style_emoticons/default/winksmiley.jpg) : http://forum.php.pl/index.php?s=&showt...st&p=740585 |
|
|
|
Post
#16
|
|
|
Grupa: Zarejestrowani Postów: 2 178 Pomógł: 596 Dołączył: 25.09.2009 Skąd: Piwniczna-Zdrój Ostrzeżenie: (0%)
|
jaki błąd (IMG:style_emoticons/default/blinksmiley.gif) (IMG:style_emoticons/default/questionmark.gif) jakie nie da (IMG:style_emoticons/default/worriedsmiley.gif) (IMG:style_emoticons/default/questionmark.gif) przykład choćby tutaj (IMG:style_emoticons/default/winksmiley.jpg) : http://forum.php.pl/index.php?s=&showt...st&p=740585 @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 (IMG:style_emoticons/default/biggrin.gif)
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 (IMG:style_emoticons/default/winksmiley.jpg) -> i dokładnie w taki sam sposób przekazuje się te zmienne do funkcji w jaki przekazaliście powyżej zmienną intervalId (IMG:style_emoticons/default/tongue.gif) (IMG:style_emoticons/default/biggrin.gif) 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 |
|
|
|
![]() ![]() |
|
Aktualny czas: 23.12.2025 - 18:06 |