Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [JavaScript]Problem z setInterval
Woytek950
post
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.
  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
  2. <head>
  3. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
  4. <title>Untitled Document</title>
  5. <script type="text/javascript">
  6.  
  7. var s = 0.01;
  8. var d = 1;
  9. function zs(){
  10. document.cos.style.opacity = s;
  11. document.cos.style.filter = 'alpha(opacity='+d+')';
  12. d++;
  13. s+= 0.01;
  14. document.s.ds.value=d;
  15. }
  16. if (d < 100) {
  17. setInterval("zs(s);", 100);
  18. }
  19. else {}
  20.  
  21. </script>
  22. </head>
  23. <body>
  24.  
  25. <form name="s">
  26. <input type="text" name="ds">
  27. </form>
  28. <br />
  29. <img src="a.jpg" alt="mak polny" name="cos" />
  30.  
  31. </body>
  32. </html>
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
zegarek84
post
Post #2





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
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: 29.06.2026 - 07:17