2012-01-24 13 views
1

長いページがあり、アンカータグを使用して長いページをナビゲートしています。
ただし、これはブラウザの履歴に記録されます。だから、「戻る」は前の「本当の」ページに戻るのではなく、ページ内を移動するだけです。ブラウザ履歴のないアンカータグ(またはURLに追加された#anchor)に基づくページナビゲーション(ページ内)

これはブラウザの履歴に記録するのではなく、おそらくjQueryなどを使用して、または#anchorタグ自体でURLを更新しなくてもかまいません。

私はHTML5でコーディングしています。ここで


は、メニューコードです:

<div class="entry_jump_menu clearfix"> 
<ul class="basic_menu"> 
    <li><a href="entry_about" class="entry_page_anchor_menu menu_about">About</a></li> 
    .... 
</ul> 
</div> 

とアンカー:

<div id="entry_about ...> 
    ... some content ... 
</div> 

私は以下のコードは、私は代わりに、これを使用するすべてで動作させることができませんでした。

/** 
* ANCHOR TAGS WITHOUT HISTORY 
*/ 
$('.entry_page_anchor_menu').click(function(){ 
    var jump = $(this).attr('href'); 
    var new_position = $('#'+jump).offset(); 
    window.scrollTo(new_position.left,new_position.top); 
    return false; 
}); 

彼の努力のためにDavidに感謝します。残念ですが、私はそれをまったく動かすことができませんでした。

答えて

3

おはよう、あなたのjQueryは私にとって有効です。

$(function(){ 
    $('.entry_page_anchor_menu').click(function(e){ 
     e.preventDefault(); 
     var jump = $(this).attr('href').substring(1); 
     var new_position = $('#'+jump).offset(); 
     window.scrollTo(new_position.left,new_position.top); 
    }); 
}); 

それはあなたがうまく低下する標準のアンカーのブックマーク(#whatever)を使用することができます:いくつかの小さな変更で、私はこれを作成しました。私はあなたのコードをjsFiddleに入れました。

+0

ご返信ありがとうございます。そのコードは劣化するので、コードは良くなり、通常のハッシュタグアンカーhrefリンクを非javascriptブラウザに使用できます。あなたが混乱していた場合には、Davidさんが元のクエリに回答を投稿し、多くの助けをしましたが、自分のコードを取得できなかったので、上記のコードではコードi投稿されましたが、今削除された回答にはDavidが投稿しました。クレジットのために、私はここから上記のコードを入手しました:http://anvilstudios.co.za/blog/javascript/javascript-jump-to-anchor-or-element-using-jquery/ – tecjam

関連する問題