使用浏览器的主滚动条滚动特定的DIV内容

我正在设计网站的新布局,并且遇到了GIZMODO网站,我发现该网站可以利用页面滚动条来滚动网站中的部分内容。他们怎么做呢?我通过Firebug研究了他们的CSS,但是我很困惑。

这是我的测试页面1:此页面可以使内容居中,但不能根据需要滚动)

这是我的测试页面2::(此页面可以根据需要滚动,但无法居中)

我只想使页面的左侧内容与页面滚动条一起滚动,但右侧内容保持原始位置,并且整个网站应居中对齐,即结合我的测试页面1和2。有人可以给我一些提示吗? ?

回答:

尽管您的Gizmodo示例使用了其他脚本来处理侧边栏(的垂直滚动条)(甚至在所有浏览器中都不起作用),但是使用纯CSS效果是完全可能的,甚至还没有看起来那么困难第一眼。

所以你要:

  • 水平居中的布局,可能会针对不同的浏览器窗口大小进行加宽或变窄,
  • 左侧的主要内容可通过浏览器的主滚动条垂直滚动,
  • 右侧的侧栏位于浏览器窗口的顶部,可与主要内容分开滚动,并且仅在鼠标悬停时显示其滚动栏。滚动到侧栏的末尾时,窗口的滚动条将接管。

看到这个 ,它做了所有的事情。

样式表:

html, body, * {

padding: 0;

margin: 0;

}

.wrapper {

min-width: 500px;

max-width: 700px;

margin: 0 auto;

}

#content {

margin-right: 260px; /* = sidebar width + some white space */

}

#overlay {

position: fixed;

top: 0;

width: 100%;

height: 100%;

}

#overlay .wrapper {

height: 100%;

}

#sidebar {

width: 250px;

float: right;

max-height: 100%;

}

#sidebar:hover {

overflow-y: auto;

}

#sidebar>* {

max-width: 225px; /* leave some space for vertical scrollbar */

}

和标记:

<div class="wrapper">

<div id="content">

</div>

</div>

<div id="overlay">

<div class="wrapper">

<div id="sidebar">

</div>

</div>

</div>

在IE7,IE8,IE9,Opera 11.50,Safari 5.0.5,FF 5.0,Chrome 12.0的Win7上进行了测试。

我假设主要内容的流动宽度和侧边栏的静态宽度,但是根据您的需要,两者都可以完全流动。如果您想要一个静态宽度,那么请看

更新资料

如果我正确理解您的评论,那么您希望防止鼠标悬停在侧边栏上时滚动主要内容。为此,侧边栏可能不是主要内容的滚动容器(它是浏览器窗口)的子级,以防止滚动事件冒泡到其父级。

我认为这个您的需求:

<div id="wrapper">

<div id="content">

</div>

</div>

<div id="sidebar">

</div>

以上是 使用浏览器的主滚动条滚动特定的DIV内容 的全部内容, 来源链接: utcz.com/qa/413239.html

回到顶部