Muszę wykryć kierunek w którym użytkownik przewija - "w górę" lub "w dół". Na podstawie kodu znalezionego w tej odpowiedzi: How can I determine the direction of a jQuery scroll event?jQuery/JavaScript: Wykrywanie kierunku przewijania - kwestia struktury kodu
Próbowałem zawinąć go w funkcję, więc jest nieco bardziej zróżnicowany - ale niestety, nie działa. Myślę, że ma to coś wspólnego z tym, jak zwracam wartość, ale kierunek jest zawsze "w górę". Będąc całkiem nowym w JavaScript mam problemy z rozwiązaniem tego problemu.
Oto kod:
$(document).ready(function() {
'use strict';
var lastScrollTop = 0,
st,
direction;
function detectDirection() {
st = window.pageYOffset;
if (st > lastScrollTop) {
direction = "down";
} else {
direction = "up";
}
lastScrollTop = st;
return direction;
}
$(window).bind('scroll', function() {
detectDirection();
console.log(detectDirection());
});
});
A ja również skonfigurować Fiddle.
Czy mógłbyś mi pomóc dostrzec gdzie jest problem?
Zalecam przeniesienie funkcji i deklaracji zmiennych poza gotową funkcję. Nie jestem pewien, czy to rozwiąże problem, ale może warto spróbować. –
@AdamPlocher Dzięki za wskazówkę, ale to nie pomogło. Czy jest jednak jakaś ogólna korzyść z tego? Może wydajność jest mądra? – Sven