2011-01-21 8 views
2

私は現在、自分のページの1つ(ページ1)のさまざまなアンカー位置まで円滑にスクロールするためにjQuery-Smooth-Scrollを使用しています。しかし、私は他のページ(ページ2)からPage1へのリンク(URLに#bookmarkを追加)を行い、jQuery-Smooth-Scrollでページを呼び出すという事実を拾い上げることができます#bookmarkを付けて、ページの読み込みが完了したらスムーズに関連する位置までスクロールします。これが可能かどうかわかりませんか?1つのページから別のページへのjQuery-Smooth-Scrollの使用?

これは私が使用していることを滑らかなスクロールのバージョンです:

https://github.com/kswedberg/jquery-smooth-scroll

を、私は何かを明らかに見下ろすすることができるので、私はまだjQueryのには比較的新しいです。

答えて

3

ページのロードが完了したら、スムーススクロール機能を呼び出すことができます。 jQueryでは$(document).ready(function(){あなたのコード})を使用しています。

URLを解析して#bookmarkを抽出し、円滑なスクロールを呼び出すには、何かを入れる必要があります。

+0

優れた、ありがとう。私はあなたがjavascriptを使ってそれをする方法を知っているとは思いません(あなたはURLから#bookmarkを抽出します)? – marcusstarnes

7

Ajmaの答えは十分ではなく、完全性のためでなければなりません:

alert(location.hash) 

編集:より完全な例:

// on document.ready { 
if (location.hash != '') { 
    var a = $("a[name=" + location.hash.substring(1) + "]"); 
    // note that according to w3c specs, the url hash can also refer to the id 
    // of an element. if so, the above statement becomes 
    // var a = $(location.hash); 
    if (a.length) { 
     $('html,body').animate({ 
      scrollTop: $(a).offset().top 
     }, 'slow'); 
    } 
} 
// } 
+0

ありがとうございました。私は、URL内にハッシュを持つ単純な存在が、スムーズなスクロールを使って処理するためにjqueryのために残すのではなく、ページ上のそのブックマークにまっすぐジャンプするように見えるが、問題が発生していると思う。私はページ1からページ2にリンクする代わりに、ブックマークのようなものを使用する必要があるかどうか、#bookmarkのURLでリンクするのかどうか疑問に思っています。ハッシュの代わりに、スムーズにスクロールしてそのブックマークを見つけた後、それは? – marcusstarnes

+0

それは後のもののlocation.searchですか? – ajma

+0

私は問題を見る。ドキュメントに実際に存在しない偽のハッシュを使用して(#detail-foo)、jQueryを 'div [id = detail]'または 'a [name = detail]'にスクロールさせることができますが、これはエレガントではありません。それは実際に別の質問として掲示する価値があります。 –

関連する問題