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 段,所以我点击了 switch。问题是当我切换回第 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 回答