Perché .animate a scrollTop salto a 0 prima animazione?
-
25-10-2019 - |
Domanda
sto giocando con Parallax scrolling come su che Nike Site . Così ho utilizzato scrollTop per determinare la posizione verticale per l'utente sulla pagina e poi sono stato di regolazione posizioni dell'elemento in base alle modifiche a quel valore.
Qui ho arrotondare il valore scrollTop e log esso. Ti faccio vedere il registro in seguito.
var distance = 60*(Math.round($(window).scrollTop()/60));
console.log(distance);
Poi, il clic, io chiamo questa funzione, che scorre al valore scrollTop che ho passato esso.
function goTo(n){
console.log('begin animating');
$('html,body').animate({scrollTop: n},2000);
}
Ecco il problema, il valore superiore di scorrimento passa a 0 prima di animazione.
Così sarò a metà pagina e tronchi:
begin animating
0
6240
6180
6120
// etc...
Il modo in cui sto posizionando roba si basa sulla precisione del valore scrollTop. Quindi la mia domanda è:
Come posso mantenere il valore scrollTop da salto a 0 prima di passare attraverso con l'animazione?
Fammi sapere se ci sono più informazioni necessarie.
Heres la versione live del sito: http://theblueeyeguy.com/moon/Illumination/
(clic su 'Avanti' poi 'Indietro' per romperlo)
Soluzione
Probabilmente perché si sta utilizzando un collegamento con href="#"
.
Aggiungi return false;
per l'attributo onclick
.
<a href="#" onClick="goTo(2160);return false;">< Prev | </a>