当前位置: 首页 > 面试题库 >

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

席安康
2023-03-14
问题内容

我正在设计网站的新布局,并且遇到了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>


 类似资料:
  • 本文向大家介绍jQuery实现浮动层随浏览器滚动条滚动的方法,包括了jQuery实现浮动层随浏览器滚动条滚动的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了jQuery实现浮动层随浏览器滚动条滚动的方法。分享给大家供大家参考。具体如下: 这是jQuery实现的一个浮动层效果,随浏览器滚动条而滚动,并一直保持在顶部位置,请使用火狐测试,IE下表现不尽理想。 运行效果截图如下: 在线演示

  • 问题内容: 当我有一个带有可滚动内容的网页时。使用css属性“ overflow:auto”或“ overflow:visible”,滚动条在桌面浏览器上可见,但是当我在移动浏览器上打开页面时,滚动条仅在尝试滚动时出现。有没有一种方法可以使滚动条在移动设备上始终可见?我尝试了一些JQuery库,但是都没有用。 html代码是微不足道的,我有一个带有IFrame的可滚动div: CSS: 问题答案:

  • 问题内容: 如何定义跨浏览器的CSS滚动条样式?我测试了此代码,它仅在IE和Opera中起作用,但在Chrome,Safari和Firefox中失败。 问题答案: 滚动条CSS样式是Microsoft开发人员发明的一种奇怪方法。它们不是CSS的W3C标准的一部分,因此大多数浏览器只是忽略它们。

  • 在我正在开发的一个网站中,我有一个div,用于移动版的主菜单。 这个div是固定的(下面是css),但在某些情况下,它的高度大于设备的高度。 我想将div样式设置为但是,如果内容溢出设备的高度,我需要它在没有滚动条的情况下可滚动,并且不移动网站的其余部分。 CSS: JAVASCRIPT: HTML格式: 我能实现我假装的东西吗?

  • 目前,我正在使用以下代码显示滚动条: 使用此CSS时,滚动条始终可见,这意味着即使div中的内容没有溢出。 当内容符合提到的高度时,我如何隐藏它们?

  • 问题内容: 如何通过CSS(级联样式表)为一个页面而不是整个页面自定义滚动条? 问题答案: 我认为整合有关滚动条,CSS和浏览器兼容性的最新信息会有所帮助。 滚动条CSS支持 当前,没有跨浏览器的滚动条CSS样式定义。最后,我在W3C文章中提到了以下内容,并于最近进行了更新(2014年10月10日): 某些浏览器(IE,Konqueror)支持非标准属性“ scrollbar-shadow-col