• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Mały problem z setTimeout.

Object Storage Arubacloud
0 głosów
222 wizyt
pytanie zadane 2 maja 2018 w JavaScript przez DariuszH Gaduła (3,100 p.)
<body onload="straight()">

#straight1{

width: 41.5%;
height: 0.5vh;
background-color: black;
position: absolute;
left:2%;
top:43vh;
animation:snake;
animation-duration:1s;
}


@keyframes snake{

from{width:0vh;}
to{width:41.5%;}


}


function straight(){

    var x =document.getElementById('straight1');


    x.style.animation="snake 3s forwards";

}

setTimeout(straight(), 3000);

Dlaczego się nie wykonuje  ? Chcę by po 3 sekundach po załadowaniu się treści strony, pojawiła się ta animacja zakodowana niepoprawnie (ale gdzie ?)  

1 odpowiedź

+1 głos
odpowiedź 2 maja 2018 przez adrian17 Ekspert (344,860 p.)
<body onload="straight()">

Tutaj wywołujesz straight() od razu po załadowaniu.

setTimeout(straight(), 3000);

Tutaj też od razu wywołujesz straight(), a wartość zwracaną (nic) przekazałeś do setTimeout.

komentarz 2 maja 2018 przez DariuszH Gaduła (3,100 p.)
No dobrze, ale jak to rozwiązać ? Mam przypisać wartości animation tylko dla setTimeout ?
1
komentarz 2 maja 2018 przez adrian17 Ekspert (344,860 p.)

Zakładając że chcesz wywołać straight() po 3 sekundach:

Wyrzuć ten onload.

A w setTimeout przekaż funkcję zamiast ją od razu wywoływać:

setTimeout(straight, 3000);

 

komentarz 2 maja 2018 przez DariuszH Gaduła (3,100 p.)
Nie działa. Jak usuwam () to z zielonego pojawia się na biało w edytorze. A to oznacza że nie ma żadnej funkcji właściwości itd wywalilem onload i czemu mam przypisać ? c
komentarz 2 maja 2018 przez DariuszH Gaduła (3,100 p.)

 

Tak to wygląda

komentarz 2 maja 2018 przez adrian17 Ekspert (344,860 p.)

wywalilem onload

To znaczy: wywal całe `onload="straight()"`...

to z zielonego pojawia się na biało w edytorze

Bo nie wywołujesz funkcji, tylko przekazujesz wartość do funkcji setTimeout - to jest poprawne.

komentarz 2 maja 2018 przez DariuszH Gaduła (3,100 p.)
Z htmla wywalone..A jak wywołać tę funkcję skoro nie ma przypisania funkcji do elementu ?
komentarz 2 maja 2018 przez adrian17 Ekspert (344,860 p.)
setTimeout ją wywoła po 3 sekundach. Do tego służy.

A funkcja nie musi być "przypisana" do żadnego elementu.
komentarz 2 maja 2018 przez DariuszH Gaduła (3,100 p.)
Nic nie działa. Pokaz mi jak Ty to robisz.
komentarz 2 maja 2018 przez adrian17 Ekspert (344,860 p.)

Chcę by po 3 sekundach po załadowaniu się treści strony, pojawiła się ta animacja

Animacja 3-sekundowa pojawiająca się po 3 sekundach:

https://jsfiddle.net/qbrv4y3c/

komentarz 2 maja 2018 przez DariuszH Gaduła (3,100 p.)
U mnie nie działa
komentarz 2 maja 2018 przez DariuszH Gaduła (3,100 p.)
Działa :) Trzeba było jeszcze display: none w css a display: block w kodzie js :)

Podobne pytania

0 głosów
1 odpowiedź 300 wizyt
pytanie zadane 19 marca 2020 w JavaScript przez kubaa322 Użytkownik (710 p.)
0 głosów
1 odpowiedź 155 wizyt
pytanie zadane 22 lutego 2023 w JavaScript przez Grzegorz Mikina Dyskutant (8,060 p.)
0 głosów
2 odpowiedzi 183 wizyt
pytanie zadane 1 czerwca 2020 w JavaScript przez michal3254 Nowicjusz (140 p.)

92,550 zapytań

141,392 odpowiedzi

319,519 komentarzy

61,935 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...