为什么.anan在动画制作之前会将scrollTop跳转到0?

时间:2011-11-29 23:08:56

标签: javascript jquery jquery-animate scrolltop parallax

我在that nike site上玩Parallax滚动。所以我一直在使用scrollTop来确定用户在页面上的垂直位置,然后我一直根据对该值的更改来调整元素的位置。

这里我舍入scrollTop值并记录它。我稍后会显示日志。

var distance = 60*(Math.round($(window).scrollTop()/60));
console.log(distance);

然后,在点击时,我调用此函数滚动到我已经传递的scrollTop值。

function goTo(n){
    console.log('begin animating');
    $('html,body').animate({scrollTop: n},2000);
}

问题是,在动画制作之前,滚动顶部值会跳转到0。

所以我会在页面的中间位置记录下来:

begin animating
0
6240
6180
6120
// etc...

我定位东西的方式依赖于scrollTop值的准确性。所以我的问题是:

如何在完成动画之前将scrollTop值保持跳转到0?

如果需要更多信息,请告诉我。
这是该网站的实时版本:http://theblueeyeguy.com/moon/Illumination/

(点击'下一步'然后'上一步'来打破它)

1 个答案:

答案 0 :(得分:7)

可能是因为您使用了href="#"的链接。

return false;添加到您的onclick属性。

<a href="#" onClick="goTo(2160);return false;">< Prev | </a>