0

在我的网站上,我有两个大(100% x 100%)的 div 垂直堆叠在一个页面上。每个 div 里面都有几个部分,每个部分都有一个锚点。我在左侧有两个浮动侧边栏(一次只能看到一个),其中包含适合每个锚点的链接。第一个边栏包含 DivOne 的链接,第二个边栏包含 DivTwo 的链接。每个侧边栏中还有一个链接,可以“交换”侧边栏和 div。侧边栏看起来像:

<div id="SidebarOne">
    <a href="#DivTwo">second screen</a>
    <a href="#OneSectionOne">Section One</a>
    <a href="#OneSectionTwo">Section Two</a>
    <a href="#OneSectionThree">Section Three</a>
</div>

我已将 CSS 和 HTML 简化为我认为相关的基础知识。这是CSS:

#DivOne {
    top:0%;
    left:0%;
    }

#DivTwo {
    top:100%;
    left:0%;
    }

#DivOne, #DivTwo {
    width:100%;
    height:100%;
    overflow:hidden;
    position: absolute;
    display: block;
    }

#Container {
    left: 50px;
    top: 0px;
    height: 500px;
    width: 500px;
    overflow: auto;
    position: relative;
    }

和 HTML:

<a id="DivOne"><div id="DivOne"></a>
  <div id="Container">
    <a id="OneSectionOne">Title One</a>
         <p>Content</p>
    <a id="OneSectionTwo">Title Two</a>
         <p>Content</p>
    <a id="OneSectionThree">Title Three</a>
         <p>Content</p>
  </div>
</div>

<a id="DivTwo"><div id="DivTwo"></a>
  <div id="Container">
    <a id="TwoSectionOne">Title One</a>
         <p>Content</p>
    <a id="TwoSectionTwo">Title Two</a>
         <p>Content</p>
    <a id="TwoSectionThree">Title Three</a>
         <p>Content</p>
  <div>
</div>

每个 div 为 100% x 100%,DivTwo 位于顶部:100%;

我遇到的问题是,当我单击侧边栏中的链接时,它会向上移动整个页面,使锚点位于页面顶部。我希望它只将“容器”div 滚动到适当的位置,而不是整个页面。它似乎在底部 div (DivTwo) 上工作,但我很确定这只是因为它位于页面底部,并且无法进一步滚动。我试过给 div 一个“位置:固定;” 但这失去了交换的能力。我也考虑过水平对齐 div,但不能很好地解决它。

这是我在哪里可以看到问题的演示。当您单击第一部分中的链接时,整个容器会向上移动,显示背景较浅的部分。

那么,我怎样才能只滚动“容器”div 而不是整个页面呢?

提前致谢!

- - - - - -编辑 - - - - - - -

我找到了答案:

这是一个演示。

基本上,我只需要移动第二个 div,所以现在它在 left:100%;

#DivOne {
top: 0%;
left: 100%;
}

因为它们都位于屏幕底部,所以没有任何东西可以滚动和显示。有点粗略的修复,但它似乎奏效了!

不过感谢所有帮助过的人!

4

2 回答 2

0

你试过改变

#DivOne {
  top:0%;
  left:0%;
 }

#DivOne {
  top:100%;
  left:0%;
 }
于 2013-10-17T17:59:02.073 回答
0

我不认为你可以单独使用锚点来做到这一点,但你可以使用 JavaScript 使用该scrollIntoView()方法来做到这一点。这是一个JSFiddle:

http://jsfiddle.net/gBd25/

在此示例中,单击链接时仅滚动底部 div。

于 2013-10-17T16:21:01.360 回答