ページの特定の部分に HTML リンクを追加すると、次のようになります。
<a href="#specific">test</a>
アドレス バーの URL が変更されていることに気付きました。アドレスバーが更新されずにそのようにリンクしているWebサイトに出くわしましたが. これはどのように可能ですか?
編集:URLを変更せずに機能させるのはAJAXソリューションかもしれません。私の記憶が正しければ、ページはリロードされず、宛先に直接移動しました...
jqueryプラグインscrollToを確認することをお勧めします。
そして、scrollToのリンクがいくつかあります
http://demos.flesler.com/jquery/scrollTo/
http://flesler.blogspot.com/2007/10/jqueryscrollto.html
あなたはこのようなことをすることができます:
HTML
<a href="#scrollToMe" class="scrollLink">click me to scroll</a>
<div class="gap">a big gap</div>
<h1 id="scrollToMe">I should scroll to here without a # in the URL</h1>
javascript(jqueryとscrolltoプラグイン)
$(document).ready(function() {
$(".scrollLink").click(function(e) {
$.scrollTo($(this).attr("href"));
e.preventDefault();
});
});
javascriptが行うことは、クラス「.scrollLink」を持つリンクがクリックされるたびに、クリックされた特定のリンクのhrefと同じIDを持つ要素までページを下にスクロールすることです。次に、e.preventDefault()は、通常のハッシュリンクのように機能しなくなり、URLバーに表示されなくなります。
これがあなたのための実用的な例です:http://jsfiddle.net/alexkey/c3jsY/7/
また、フレームセットにないバージョンなので、URLが変更されていないことがわかります。
http://fiddle.jshell.net/alexkey/c3jsY/7/show/light/
このアプローチにはいくつかの良い点があります
JavaScript を使用してクリック イベントをインターセプトし、独自のカスタム ロジックを実行してから、ナビゲーション イベントをキャンセルして、URL が変更されないようにすることができます。
ウィンドウを適切に配置するには、数値 (ここでは 200 として示されています) を試してみる必要があります。
<a href="javascript:void(0);" onclick="window.scroll(0,200);">test</a>
多分あなたは次のようなことを試すことができます: window.scroll(0,150); 「(0,150)」の代わりに、ターゲットの座標を入れます。
次のコードをインラインで使用できます。
<a href="javascript:void(0);" onclick="document.getElementById(\'bookmark\').scrollIntoView();"> link text </a>
<div id="bookmark">Jump to here</div>