2010-11-23 12 views
0

I 実際には誰かが私を助けてくれることを願っています!もしあなたがそうしたら、すごくありがとう! :)"examplelink.php#anchor"をクリックしたときにjavascriptが機能しない

私は2つのページ... index.phpをportfolio.phpという名前のものをという名前のものを持っています。 私のヘッダー(すべてのページに同じ)には、portfolio.phpページ(portfolio.php#blogg)に再入力するアンカーが含まれています。

その後、portfolio.phpを私も(これはすべてのページで動作するはずです)スムーズスクロールためのJavaScriptコードを持っていますが、私は別のページにいるときには、ヘッダアンカーリンク上では動作しません。

私はjavascriptののindex.phpページの例を押して「portfolio.php番号のblogg」のときに私が機能するために取得するために何ができますか?相続人

私のjavascript:

window.addEvent('domready',function() { new SmoothScroll({ duration: 800 }); }); 

答えて

0

うーん....私が正しく理解していれば問題は、SmoothScrollオブジェクトがある前に、別のページから到着するときに、ブラウザがフラグメントアンカー位置までジャンプしていることですロードされる。最初に気になるのは、セッションやCookieを使用するソリューションです。

ユーザーがインデックスページにあり、#bloggアンカーにスクロールするポートフォリオへのリンクをクリックすると、リンクのURLにハッシュタグフラグメントを追加する代わりに、ページをスクロールする必要があることを示すCookieを保存しますポートフォリオページの上部に直接リンクします。

次に、ポートフォリオページdomreadyイベントで、SmoothScrollオブジェクトをロードし、クッキーの有無を確認し、#bloggアンカーがあればスクロールしてクッキーを削除します。

+0

はい、あなたは私の質問を完全に理解しました! :)それが可能であるならば、私はより擬似的な答えが必要です。私はそれを行う方法がわからない! ありがとうございました! :) –

0

私たちはここに多くの情報を与えているわけではありませんが、私はSmoothScrollがMooToolsのものだと仮定していますか? これを見てください:http://davidwalsh.name/mootools-onload-smoothscroll

window.addEvent(‘domready’, function() { 
    new SmoothScroll({ duration:700 }, window); 
    var el = window.location.hash.substring(1); // the hash 
    if(el) { 
     window.scrollTo(0,0); 
     var scroll = new Fx.Scroll(
      window, 
      { wait: false, duration: 700, transition: Fx.Transitions.Quad.easeInOut } 
     ); 
     scroll.toElement(el); 
    } 
}); 
+0

はい、そのムーツールからのもの! :) http://davidwalsh.name/smooth-scroll コードはほとんど動作するようです! :Oしかし、かなり..ページをロードしますが、アンカーまでスクロールしません。 –

+0

はjqueryを使って同様のものがありますか? –

関連する問題