2012-10-15 71 views
1

我使用的Pagify.js插件,它有助於創建一個頁面的網站,通過使用jQuery來拉動一個容器div中的幾個html文件,而瀏覽器不必刷新整個頁面。如何控制scrolltop javascript函數?

問題是,我試圖滾動到導航欄div單擊鏈接時,我收到奇怪的結果。這裏是插件和HTML jsfiddle。下面是我使用滾動代碼(我不知道在哪裏把它)

$('html, body').animate({scrollTop:$('#nav').position().top}); 

http://jsfiddle.net/5y9HT/

如果我貼在不同的地方scrollTop的代碼在pagify.js,不同的事情發生,沒有一個行爲完全正確。 我試圖實現的情況下,如果點擊一個鏈接它會滾動到導航格,但如果刷新瀏覽器不會滾動(應該已在那裏就像在這個網站:http://www.madebysofa.com/archive/index.html

回答

0

我想你想#導航的偏移,而不是它的位置:

$('.content').on('click', 'a', function(a){ 
    a.preventDefault(); 
    $('content').get('newPage.html'); 
    var nav_position = $('#nav').offset(); 
    console.log(nav_position); 
    $(document).animate({ 
     scrollTop: nav_position + 'px'; 
    }); 
}); 

您可能仍然能夠使用你的位置(),以同樣的方式頂

$('.content').on('click', 'a', function(a){ 
    a.preventDefault(); 
    $('content').get('newPage.html'); 
    var nav_position = $('#nav').position().top; 
    console.log(nav_position); 
    $(document).animate({ 
     scrollTop: nav_position + 'px'; 
    }); 
}); 
0

試試這個,

$('html, body').animate({scrollTop:$('#nav').offset().top}, 1000); 

您還可以使用文檔而不是同時指定'html'和'body'。希望它有效。

相關問題