Jednorazowe wykonanie funkcji $(window).scroll

0

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()
}
});

0

Stwórz sobie flagę, którą sobie opuścisz przy pierwszym uruchomieniu funkcji.

0

Nie ma innego sposobu?

0

Wrzuć to co masz na http://jsfiddle.net to coś wykombinujemy :)

1
Programista napisał(a):

Nie ma innego sposobu?

Po co inny? Po to sa bitowe flagi

0

W jaki sposób dodać tą technikę z flagą do powyższego kodu?

0

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

0

var flagg = true
$(window).addEventListener("scroll",licz() {
if ($(window.scrollTop() > 1000 {
if(flagg) return;
flagg = false;
licz()
}
}
)
o coś takiego chodziło?

0

To wtedy flage trzeba inicjowac falsem jak tak patrze bo nie negejusz warunku

0

var flagg = false
$(window).addEventListener("scroll",licz() {
if ($(window.scrollTop() > 1000 {
if(flagg) return;
flagg = true;
licz()
flagg = false
}
}
)
w ogole nie dziala

0

Bo znowu flage na false dales.
W ogole to formatuj kod bo nawet bugow mi sie wypominac nie chce jak na plain text patrze

0

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;

}
});

1 użytkowników online, w tym zalogowanych: 0, gości: 1