1

これが私のhtmlです:

<!DOCTYPE html>
<html>
<head></head>
<body>
    <a id="x" href="#" style="position:fixed; top:0; right:10px;">Switch</a>
    <div id="a">
        <p>Huge paragraph 1</p>
    </div>

    <div id="b" style="display:none;">
        <p>Huge paragraph 2</p>
    </div>

    <script src="http://code.jquery.com/jquery-1.8.2.min.js"></script>
    <script>
        $('#x').click(function() {
            $('#a').toggle();
            $('#b').toggle();

            return false;
        });
    </script>

</body>
</html>

問題は、段落1の途中までスクロールしてから、スイッチリンクを押したとしましょう。さて、今は段落2を見ています。たとえば、段落2をスクロールして、段落1に戻したいと思ったので、スイッチを押します。問題は、段落1に戻ると、元の中間点とはまったく異なる場所にいることです。各divのスクロールを基本的にそれぞれのコンテンツのみをスクロールさせて、切り替えた場合でも前に中断したところから続行できるようにするにはどうすればよいですか?

4

2 に答える 2

1

重要なのは、要素を切り替える直前に、scrollTopをbody要素に格納することです。

その値を保存したら、毎回再設定するだけです。

ここに簡単で汚い実装があります:http://jsbin.com/efijey/1/edit

于 2012-11-02T01:18:02.267 に答える
0

これが私の質問でした。

div 内の要素をスクロールして過去にアンカー タグを更新する

そして、誰かが完璧に機能する応答に対してこれで答えました。各 div の各スポットが保存され、切り替えボタンで切り替えられるようにすることができます。

http://jsbin.com/ezexaf/1/edit

于 2012-11-01T18:56:06.863 に答える