2011-11-29 47 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

就是這樣!很棒的醬!!! –

相關問題