2011-02-01 10 views
0

誰かがこれを過去に投稿しましたので、この機能を備えたカスタムスクリプトがあるかどうかを確認したいと考えて、再度投稿します。私はあえて言うので、私はそれを自分自身をコーディングする必要はありません:this SO postからP文書の読み込み時にスクロールするアンカー要素

抜粋: 「私はすでに、jQueryのプラグインScrollToを知っているが、私は以下のことを実現するため、今までのどのような方法を見つけられませんでした。

ユーザーがdomain.com/bla.php#foo

と「#foo」が存在するアンカー(タイプする、しないことで、私のページのリンクをクリックすることで)自分のサイトになります。今、私はそれをしたいですユーザーのブラウザは自動的に "#foo"にスクロールしません。代わりにスムーズにスクロールして、要素 '#foo'がビューの真ん中にあり、ユーザービューの絶対トップには移動しません。

ありがとうございました!

+0

唯一の真の回避策は、アンカー要素を単独で処理しようとすることに反対のスクロールメカニズムに何かを付けることです。ページが完全に読み込まれるまで、ページはアンカーにスナップされません。スクロール機構をスクリプトにバインドするのに十分な時間。 – DoctorLouie

答えて

1

これを解決することができます。現在の場所を取得するためのスクリプトを追加します。スクロールトップをページの先頭に設定し、ページがロードされたときにjQuery.ready(scrollTo)ブロックを追加します。

擬似コードの実装は次のとおりです。

<head> 
    <script src="jquery.js"> 
    <script> 
    var loc = window.location; 
    var anchor = getAnchor(loc); 
    if (anchor !== undefined) { 
     removeAnchor(loc, anchor); 
     scrollTo(0); 
     $.ready(function() { 
     $.scollTo(anchor); 
     }); 
    } 
    </script> 
    ... 

ブラウザがアンカーにスナップする前にこれが発生することを期待します。それは動作しても動作しなくてもよい。自分自身を肉体的に自由に感じてください。

+0

あなたが近くに来た唯一の人なので、私はあなたに親指を与えます:P – DoctorLouie