0

私の問題は、私が記録したこのスクリーンキャストで最もよく説明されています:http ://www.youtube.com/watch?v=aI-p_jqzOdU

AjaxディープリンクにjQueryアドレスプラグインを使用しています。jQueryアドレスがどのように機能するかわからない場合は、change()メソッドでハッシュの変更をリッスンすることで機能します。戻るボタンを押して前のページのURLに移動するハイパーリンクを押すと、同じイベントハンドラーが呼び出されるため、同じように動作するはずです。

ここにそれは擬似コードにあります:

$address.change(function(event) {
    if (event.value != '/') { // is the image link
        Get the URL to be loaded
        Create an overlay, append it to body and set its height, width, opacity
        Put overlay on top of gallery
        Load URL into overlay then fade it in
        Set BODY to overflow: hidden
    } else { // is the gallery link
        Set BODY to overflow: auto
        Fade out overlay then remove it
    }
});

ビデオを見ると、前のページへのリンクを押すと、ページのスクロールが0に戻ることがわかります。ブラウザの戻るボタンを押すと、目的の動作が維持されます。

何が間違っている可能性がありますか?

4

1 に答える 1

0

わかりました、私は何が悪いのか知っていると思います。履歴には前のページのスクロールが記憶されているため、戻るボタンでスクロールが維持されます。前のページへのリンクは新しい履歴状態を生成するため、前の状態に戻るのではなく、スクロールがゼロの新しい状態に戻ります。

于 2011-04-02T10:15:27.287 に答える