2015-04-27 12 views
5

Chcę wykryć, kiedy użytkownik przewinął na dół strony, a następnie próbuje kontynuować przewijanie, ale tam, gdzie nie ma już nic do przewinięcia/wyświetlenia .Wykryj martwe przewijanie u dołu strony (kółko myszy, zdarzenia przewijania)

Tworzę metryki użyteczności, w których martwe przewijanie jest jedną miarą i potrzebuję sposobu, aby dokładnie wykryć, kiedy użytkownicy próbują przewijać, ale nie ma nic do zaoferowania.

Potrzebuję czegoś, co zostanie wywołane, gdy rozpocznie się zdarzenie kółka myszy, ale strona nie będzie się przewijać, z kierunkiem góra/dół.

+0

Pokaż swój kod ... – Choxx

+0

Musisz pokazać trochę wysiłku, stackoverflow nie jest stroną internetową, aby otrzymać kompletne rozwiązania kodu do dowolnego pytania. – Trader

+1

Dlaczego po prostu nie skonfigurujesz testu z jquery i nie zobaczysz, czy zdarzenie przewijania się uruchomi, gdy dojdzie do martwego przewijania? – Huangism

Odpowiedz

1

Oto wywierają ze skryptu używam zatrzymać stronę z animowania zwój po osiągnięciu dna:

var gate = $(window), edge; 
setLength(); 

gate.resize(function() { 
    setLength(); 
}); 

function setLength() { 
    edge = $(document).height()-gate.height(); 
} 

gate.mousewheel(function(event, delta) { 

    outset = gate.scrollTop(); 
    if (delta == 1 && outset == 0) console.log('top'); 
    if (delta == -1 && outset == edge) console.log('bottom'); 
}); 

używam pluginu kółka myszy , jest po prostu świetny i dla każdej dobrej obsługi przeglądarki krzyżowej trzeba napisać kilka kodów, aby normalizować zdarzenia na kołach i tak ...

https://plugins.jquery.com/mousewheel/

Domyślam się, że zrobi to, co zostało zadane w pytaniu - sprawdź, czy zdarzenie kółka myszy sprawi, że strona przewinie się poza jej granice. W eksperymencie myślowym możesz również być o krok przed tym, ale tylko dokładnie, jeśli mousewheel jest używany jako seter. Można wykonać tę stronę, aby przewinąć dokładną liczbę pikseli, gdy użytkownik uruchomi zdarzenie typu mouswheel. A kiedy miejsce docelowe strony jest znane, możesz sprawdzić, czy jest ona w zasięgu górnej i dolnej części strony.

+0

Fajnie, pozwól mi spróbować. – Collarbone

+0

Czy to się udało? Jeśli potrzebujesz precyzji pikseli podczas przewijania strony użytkownika w kierunku zewnętrznych krawędzi strony, możesz rozważyć użycie gładkiego skryptu przewijania, który napisałem (skąd wzięty jest powyższy fragment): http://codepen.io/Shikkediel/pen/GJRbOV ? editors = 001. – Shikkediel

+0

Pracował świetnie. Dzięki! – Collarbone

0

Dodaj Windows scrollTop() i wysokość. Jeśli jest równa wysokości dokumentów, jesteś na dole strony.

$(window).scroll(function() { 
    if($(window).scrollTop() + $(window).height() == $(document).height()) { 
     console.log("Page bottom reached!"); 
    } 
}); 

http://jsfiddle.net/1v3cakn9/1/

+0

Przyjemnie, ale gdy już dojdzie do dna, a użytkownik będzie próbował przewijać, czy możemy wywołać coś innego? – Collarbone

+0

Po prostu wstawisz cokolwiek chcesz zamiast logu konsoli. –

+0

Stare, ale wciąż ... Zdarzenie przewijania nie utrzymuje wyzwalania po osiągnięciu dołu, więc to nie działa. Konsola.log dzieje się tylko raz, jeśli przewijasz dalej, gdy trafisz na dół, to nie uruchamia się więcej. OP chciał czegoś wykryć, gdy osoba przewija po zakończeniu. – jsfrocha

Powiązane problemy