Sto utilizzando una versione modificata di http://nick-jonas.github.io/windows/ che consente all'utente di scorrere all'interno di una DIV sezioni diverse che verranno quindi riposizionate.Interrompi l'evento scrollTo corrente quando l'utente scorre
Perché faccio scorrere un DIV ho sostituito:
$('.windows').animate({scrollTop: scrollTo }, options.snapSpeed, function(){
if(!completeCalled){
if(t){clearTimeout(t);}
t = null;
completeCalled = true;
options.onSnapComplete($visibleWindow);
}
});
con:
$('.windows').scrollTo($visibleWindow , options.snapSpeed, { onAfter:function(){
if(!completeCalled){
if(t){clearTimeout(t);}
t = null;
completeCalled = true;
options.onSnapComplete($visibleWindow);
}
}});
Così come si può vedere che uso il plugin scrollTo per passare alla div visibile invece di basarsi su offset complessi come il codice precedente.
Un errore che ho notato in ENTRAMBI il codice originale e il mio è che se lo snap si è avviato e quindi l'utente lo interrompe scorrendo, finirà per combattere con l'evento di scorrimento per scorrere il contenuto. Quindi se lo scrollTo sta scorrendo verso il basso di 100 pixel e poi provano a scorrere verso l'alto di 300 pixel usando la barra di scorrimento del browser, lo schermo salterà mentre l'evento e il browser scorrono.
Qualche idea su come posso fermarlo? Spero che ora sto usando il plugin scrollTo, sarà più facile gestirlo.
Finora ho provato:
$('.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');
}
});
Ma questo si ferma la rompersi accada a tutti ... tutte le idee per una correzione?
Non sono sicuro che potresti fare ciò che vuoi con fullPage.js. – Alvaro
A proposito, per evitare di scorrere con il mouse, usando il css 'body, html {scroll: hidden;}' è il modo di procedere. – Alvaro
@Alvaro non esiste una proprietà CSS chiamata 'scroll'. Intendevi "overflow"? – Pavlo