2011-11-29 60 views
2

我正在玩像在that nike site上的Parallax滚动。所以我一直在使用scrollTop来确定用户在页面上的垂直位置,然后根据对该值的更改调整元素的位置。为什么.animate要在动画之前跳到0?

这里我将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/

(点击“下一步”,然后“上一个”打破它),可能是因为你使用的是与href="#"链接

回答

7

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

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

就是这样!很棒的酱!!! –

相关问题