Javascript 隐藏元素后更新滚动条

Javascript 隐藏元素后更新滚动条,javascript,jquery,html,Javascript,Jquery,Html,我有一个网页,其中包含部分。每个部分都有100%的宽度和高度。我的第一部分在网页的顶部。第2节低于第1节,依此类推。例如,我的视图位于截面2上,我想隐藏截面1。隐藏部分1后,部分2位于顶部。但浏览器会记住,它位于Section1下面,并向下滚动一节至Section3。那么我应该如何避免这种滚动呢 <section id="1"> </section> <section id="2"> </section>

我有一个网页,其中包含部分。每个部分都有100%的宽度和高度。我的第一部分在网页的顶部。第2节低于第1节,依此类推。例如,我的视图位于截面2上,我想隐藏截面1。隐藏部分1后,部分2位于顶部。但浏览器会记住,它位于Section1下面,并向下滚动一节至Section3。那么我应该如何避免这种滚动呢

    <section id="1">

    </section>
    <section id="2">

    </section>
    <section id="3">

    </section>

    <script type="text/javascript">
        <!--the view is on section2-->
        $('#1').addClass('hidden');
    </script>

$('1').addClass('hidden');

让我们从澄清开始:

浏览器记住,它在第1节下面,并滚动一节 下一节到第三节

浏览器不记得并且不滚动任何内容。浏览器被滚动了x个像素,删除第一个部分后仍然滚动了x个像素,但是第2部分占用的空间现在被第3部分占用

您需要做的是将垂直滚动条固定到删除div
#1
后应位于的位置。因为它们占据了100%的高度,所以滚动一个负值
window.height

$(window).scrollTop( $(window).scrollTop() - $(window).height() );
或者,如果要将其滚动到
#2
部分的开头,则必须执行以下操作:

$(window).scrollTop( $("#2").offset().top );

您可以看到它在这个JSFIDLE上工作:(它包含两个示例,一个是注释的,您需要取消注释才能看到它工作)

发布隐藏类的样式。使用Location hash属性而不是hide如何?我认为如果窗口不用于滚动,FF和IE也需要使用“html”来解决?谢谢。你是对的,我用你的建议更正了代码