URLを変更するが、ハッシュ状態を使用せずにページを変更しないページにリンクを配置するにはどうすればよいですか?
URLを変更してページの対応するセクションにスクロールするリンクを配置したい。スクロールする代わりにセクションにジャンプするだけなので、ハッシュを使用したくありません。ハッシュはURLであまりよく見えないと思います。
URLを変更するが、ハッシュ状態を使用せずにページを変更しないページにリンクを配置するにはどうすればよいですか?
URLを変更してページの対応するセクションにスクロールするリンクを配置したい。スクロールする代わりにセクションにジャンプするだけなので、ハッシュを使用したくありません。ハッシュはURLであまりよく見えないと思います。
HTML5 プッシュ状態を見てみましょう
私の知る限り、他に方法はありません。
jQuery ScrollTo プラグインを試しましたか? http://archive.plugins.jquery.com/project/ScrollTo
現在、ブラウザーには、ロケーション バーに表示される URL が実際に表示されているものと一致することを保証するセキュリティ機能があります。同時にページを変更せずに場所を変更することはできません。
ただし、URL を変更せずに、好きな場所にページをスクロールできます。特定の要素までスクロールするには、その位置を取得して次を使用します.animate()
。
$('body').animate({scrollTop: $('#element').position().top});
これを、URL の変更をキャンセルするために.on('click',...)
使用するハンドラーと組み合わせると、準備完了です。e.preventDefault()
$('a[href^=#]').on('click', function(e) { // apply to all hash links
var el = $(this).attr('href'); // get the href
e.preventDefault(); // cancel default click action
$('body').animate({
scrollTop: $(el).position().top // scroll to the href ID instead
});
});
HTML5 ブラウザー履歴 (別名 PushState) は最新のアプローチです
https://developer.mozilla.org/en-US/docs/DOM/Manipulating_the_browser_history
ブラウザでかなり広くサポートされています