Witam,
Jak wykonać jednorazowo funkcje jeśli scrolluje w dół o 1000 px? Na chwilę obecną jak jestem poniżej 1000 px to wykonuje się za każdym razem , gdy scrolluje.
$(window).scroll(function () {
if ($(window).scrollTop() > 1000) {
liczenie()
}
});
Stwórz sobie flagę, którą sobie opuścisz przy pierwszym uruchomieniu funkcji.
Nie ma innego sposobu?
Wrzuć to co masz na http://jsfiddle.net to coś wykombinujemy :)
Programista napisał(a):
Nie ma innego sposobu?
Po co inny? Po to sa bitowe flagi
W jaki sposób dodać tą technikę z flagą do powyższego kodu?
Nie wchodzilem w kod bo mnie w domu nie ma ale:
dodajesz nowa zmienna ustawiona na true i cialo funkcji zamykasz w if(flaga) a na koncu ustawiasz ja na false
A co do innego sposobu: scroll dodajesz jako eventListener dokumentu a w samej metodzie ten eventListener(ta sama referencje¦) usuwasz
var flagg = true
$(window).addEventListener("scroll",licz() {
if ($(window.scrollTop() > 1000 {
if(flagg) return;
flagg = false;
licz()
}
}
)
o coś takiego chodziło?
To wtedy flage trzeba inicjowac falsem jak tak patrze bo nie negejusz warunku
var flagg = false
$(window).addEventListener("scroll",licz() {
if ($(window.scrollTop() > 1000 {
if(flagg) return;
flagg = true;
licz()
flagg = false
}
}
)
w ogole nie dziala
Bo znowu flage na false dales.
W ogole to formatuj kod bo nawet bugow mi sie wypominac nie chce jak na plain text patrze
Ok, problem rozwiązany.
Dzięki za pomoc
var flag = false;
var Lscrolltp = 1000;
$(window).scroll(function() {
var fp = $(this).scrollTop();
if (fp > Lscrolltp && !flag) {
licz()
flag = true;
}
});