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

SetTimeout podczas scrollowania

Object Storage Arubacloud
0 głosów
169 wizyt
pytanie zadane 12 marca 2019 w JavaScript przez eric19972 Użytkownik (590 p.)

Witam, tak prezentuje się moja "funkcja". Jestem początkujący w JS, wiec nie mam pojęcia o co chodzi. Mianowicie mam 3 divy na stronie i chciałbym zrobić taki bajer, że jak dojeżdżamy do pewnego momentu to wskakuje jeden, potem drugi, potem trzeci. Niestety w tym momencie wskakują mi wszystkie w jednym czasie i nie mogę nic z tym zrobić, bo gdziekolwiek nie dodam settTimeout to i tak nie działa (set time out odpala się już przy załadowaniu i jak wtedy dojeżdżam scrollem to ikonki już są, albo w ogóle się nie ładują jak pokombinuje i wstawię go w inne miejsca). Wie ktoś może jak to ogarnać na przykładzie mojego kodu? Jakie linijki tam wstawić? Domyślam się, że jeżeli ktoś zna JS'a to zrobi to w 15 sekund :D 

1
komentarz 12 marca 2019 przez pablop76 VIP (123,180 p.)

Bardzo ładnie wstawiłeś to zdjęcie ale lepiej wstaw kod w bloczek do tego przeznaczony. Będzie łatwiej odpalić twój kod w edytorze.

1 odpowiedź

0 głosów
odpowiedź 12 marca 2019 przez pablop76 VIP (123,180 p.)

Twój warunek sprawdza przewinięcie dokumentu i jeżeli wartość jest większa niż 650 odpala wszystkie funkcje. Więc efekt jest taki jak jest. Zapoznaj się z metodą getBoundingClientRect i sprawdzaj położenie każdego elementu podczas skrolowania a jak będzie miał wymagane położenie odpal funkcję.

Chyba, że one są na tej samej wysokości i chcesz po prostu odpalić je w jakimś odstępie czasowym to wtedy jak najbardziej użyj setTimeout() dla drugiej i trzeciej funkcji.

komentarz 12 marca 2019 przez eric19972 Użytkownik (590 p.)
Są w tej samej wysokości, ale jak daje setTimeout to i tak nie działa. Koleś na stacku miał podobny problem, ale nie ogarniam w ogóle o co tam chodzi :D

https://stackoverflow.com/questions/25210104/if-else-statement-with-settimeout-causes-flicker/25210488
komentarz 12 marca 2019 przez pablop76 VIP (123,180 p.)
edycja 12 marca 2019 przez pablop76
Chodzi o to, że warunek zostanie spełniony za każdym razem gdy skrol będzie większy niż 650, więc po przekroczeniu tej granicy funkcja będzie odpalana wielokrotnie w zadanym odstępie czasowym, dlatego należy ją wyczyścić.

Poszukaj info o throttle i debounce

Podobne pytania

0 głosów
1 odpowiedź 398 wizyt
pytanie zadane 19 stycznia 2019 w JavaScript przez adriancz2001 Nowicjusz (120 p.)
–1 głos
0 odpowiedzi 180 wizyt
0 głosów
2 odpowiedzi 358 wizyt

92,576 zapytań

141,426 odpowiedzi

319,652 komentarzy

61,961 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!

...