1

http://www.optiekmeulemeester.be/normalにスライド ナビゲーション付きの Web ページがあります。これは、次のコードで発生します。

$(".link").click(function(){
  var link = $(this).attr('href');
  $("#middle").scrollTo(link, 800);
  return false;
});

これは機能しますが、jQuery アドレス ( http://www.asual.com/jquery/address/ )を使用して [戻る] ボタンを有効にしようとしています。私のコードはこれに変更されました:

$.address.change(function(event){
  var link = event.pathNames[0] || '#panel1'; 
  if(link != '#panel1'){ link = '#' + link;}
  $("#middle").scrollTo(link, 800);
});

すべての .link クリックのコードはコメント アウトされ、false が返されます。

戻るボタンが有効になり、 http://www.optiekmeulemeester.be/testで確認およびテストできるように、ほとんどの場合機能します。特別な場合には微調整が必​​要だと思いますが、その前に大きな問題は、アニメーションが機能しなくなったことです。

*編集: 機能する場合と機能しない場合があることがわかりました。そこにロジックが見つかりません。戻るボタンを介してリンクをクリックするだけでなく?!? 誰かが私のエラーを取得しますか?

これは、アニメーションの呼び出しが、標準の a(nchor) 動作によってアドレスが変更された後に行われるためですか?

前もって感謝します。

4

2 に答える 2

1

次のようなものを試してください。

$.address.change(function(event){
  $("#middle").scrollTo('#' + (event.pathNames[0] || 'panel1'), 800);
});

$(".link").address();

アドバイスはほとんどありません。

  • パネル1、パネル2などの代わりに、リンクに話す名前を使用します。
  • ブラウザは適切な場所にスクロールするための組み込みの動作を強制する可能性があるため、コンテナのIDとアドレス値の間にいくつかの違いを作ってみてください。このためのオプションとして、スクリプトモードを有効にすることを検討してください。
  • 最初のパネルに空の値を使用して、「」と「panel1」の両方ではなく、最初のページに単一の一意の値を設定できるようにします。
  • 組み込みのスクロールの一部を修正するプラグインのラップオプションの使用を検討してください。
于 2010-08-03T18:30:00.157 に答える
1

私が見つけた1つの回答は、おそらく回避策です:

$.address.change(function(event){
  var link = event.pathNames[0] || '#panel1';
  if(link != '#panel1'){ link = '#' + link;}
  $("#middle").scrollTo(link, 800);
});

$(".link").click(function(){
  var link = $(this).attr('href');
  $("#middle").scrollTo(link, 800);
  return true;
});

$.address.change 関数の同じコード + $(".link").click + true を返すと、address.change が起動されます。

今のところ動作します:)。もっといいのあったら教えてね!

于 2010-08-02T14:24:38.813 に答える