1

私は Pagify.js プラグインを使用しています。これは、ブラウザーがページ全体を更新することなく、jquery を使用してコンテナー div 内に複数の html ファイルをプルすることで、1 ページの Web サイトを作成するのに役立ちます。

問題は、リンクがクリックされたときにナビゲーション バーの div にスクロールしようとしていて、奇妙な結果が得られることです。これがプラグインと HTML jsfiddle です。スクロールに使用しているコードは次のとおりです(どこに配置すればよいかわかりません)

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

http://jsfiddle.net/5y9HT/

pageify.js のさまざまな場所に scrollTop コードを貼り付けると、さまざまなことが起こりますが、まったく正しく動作するものはありません。リンクをクリックするとナビゲーション div までスクロールするが、ブラウザを更新するとスクロールしないという状況を実現しようとしています (既に表示されているはずです。このサイトのように: http://www. madebysofa.com/archive/index.html

4

2 に答える 2

0

位置ではなく、#nav のオフセットが必要だと思います。

$('.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';
    });
});

同じ方法で position().top を引き続き使用できる場合があります。

$('.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';
    });
});
于 2012-10-15T05:03:37.710 に答える
0

これを試して、

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

「html」と「body」の両方を指定する代わりに、document を使用することもできます。それがうまくいくことを願っています。

于 2012-10-15T05:48:05.493 に答える