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)

¿Fue útil?

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>
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top