¿Por qué. Animate to Scrolltop salta a 0 antes de animar?
-
25-10-2019 - |
Pregunta
Estoy jugando con paralaje desplazándome como encendido Ese sitio de Nike. Entonces he estado usando cañón de desplazamiento Para determinar la posición vertical del usuario en la página y luego he estado ajustando las posiciones del elemento en función de los cambios en ese valor.
Aquí redondeo el valor de Scrolltop y lo registro. Mostraré el registro más tarde.
var distance = 60*(Math.round($(window).scrollTop()/60));
console.log(distance);
Luego, al hacer clic, llamo a esta función que se desplaza al valor de ScrollTop que lo he pasado.
function goTo(n){
console.log('begin animating');
$('html,body').animate({scrollTop: n},2000);
}
Aquí está el problema, el valor superior de desplazamiento salta a 0 antes de animar.
Así que estaré a mitad de camino en la página y registra:
begin animating
0
6240
6180
6120
// etc...
La forma en que estoy posicionando cosas se basa en la precisión del valor de scrolltop. Entonces mi pregunta es:
¿Cómo puedo evitar que el valor de Scrolltop salte a 0 antes de pasar con la animación?
Avíseme si se necesita más información.
Aquí está la versión en vivo del sitio: http://theblueeyeguy.com/moon/illumination/
(haga clic en 'Siguiente' y luego 'anterior' para romperlo)
Solución
Probablemente porque estás usando un enlace con href="#"
.
Agregar return false;
para usted onclick
atributo.
<a href="#" onClick="goTo(2160);return false;">< Prev | </a>