Używam zmienionej wersji http://nick-jonas.github.io/windows/, która pozwala użytkownikowi przewinąć wewnątrz DIV różne sekcje, które następnie wskoczą z powrotem na miejsce.Zatrzymaj bieżące zdarzenie scrollTo, gdy użytkownik przewija
Ponieważ jestem przewijanie DIV Mam zastąpić:
$('.windows').animate({scrollTop: scrollTo }, options.snapSpeed, function(){
if(!completeCalled){
if(t){clearTimeout(t);}
t = null;
completeCalled = true;
options.onSnapComplete($visibleWindow);
}
});
z:
$('.windows').scrollTo($visibleWindow , options.snapSpeed, { onAfter:function(){
if(!completeCalled){
if(t){clearTimeout(t);}
t = null;
completeCalled = true;
options.onSnapComplete($visibleWindow);
}
}});
tak można zobaczyć, aby przejść do widocznego div użyć wtyczki scrollTo zamiast opierania się na złożone przesunięcia, takie jak poprzedni kod.
Błąd, który zauważyłem zarówno w oryginalnym kodzie, jak i moim własnym, polega na tym, że jeśli zacznie się przyciąganie, a następnie użytkownik przerwie to, przewijając, w końcu będzie walczył z wydarzeniem przewijania, aby przewinąć zawartość. Jeśli więc scrollTo przewinie w dół o 100 pikseli, a następnie spróbuje przewinąć do góry o 300 pikseli za pomocą paska przewijania przeglądarki, ekran stanie się szybszy wraz z przewijaniem zdarzenia i przeglądarki.
Jakieś pomysły na to, jak mogę to powstrzymać? Mam nadzieję, że teraz, gdy używam wtyczki scrollTo, łatwiej będzie sobie z tym poradzić.
Do tej pory próbowałem:
$('.windows').bind("scroll mousedown DOMMouseScroll mousewheel keyup", function(e){
if (e.which > 0 || e.type === "mousedown" || e.type === "mousewheel"){
$(this).stop().unbind('scroll mousedown DOMMouseScroll mousewheel keyup');
}
});
Ale to zatrzymuje przyciągania dzieje w ogóle ... jakieś pomysły na poprawki?
Nie jestem pewien, czy można zrobić, co chcesz z fullPage.js zamiast tego. – Alvaro
Nawiasem mówiąc, w celu uniknięcia przewijania za pomocą myszy, użycie css 'body, html {scroll: hidden;}' jest sposobem postępowania. – Alvaro
@Alvaro nie ma właściwości CSS o nazwie 'scroll'. Czy chodziło Ci o 'overflow'? – Pavlo