让两个 div 共享同一个滚动条?

Posted

技术标签:

【中文标题】让两个 div 共享同一个滚动条?【英文标题】:Make two divs share the same scrollbar? 【发布时间】:2011-11-14 11:38:36 【问题描述】:

给定两个 div,它们代表嵌入在更大 div 中的列。如果 "!stuff" html 代表了许多超过容器高度的数据行,我该如何设置它使两个 col div 溢出并从 "container" 共享一个滚动条?

。容器 高度:100%; 宽度:100%; 溢出-x:隐藏; 溢出-y:滚动; 位置:相对; 底部填充:30px; .col1 高度:100%; 宽度:50%; 溢出-x:隐藏; 溢出-y:可见; 位置:相对; 向左飘浮; .col2 高度:100%; 宽度:50%; 溢出-x:隐藏; 溢出-y:可见; 位置:相对; 浮动:对;
<div class="container">
  <div class="col1">
    !Stuff<br/>
  </div>

  <div class="col2">
    !Stuff
  </div>
</div>

【问题讨论】:

【参考方案1】:

您需要为容器设置一个固定的高度,否则它将自动调整大小以使列 div 适合其中。 overflow 属性应该只为容器设置,因为它是唯一可以滚动的元素:

.container 
    height: 300px;
    width: 100%;
    overflow-x: hidden;
    overflow-y: scroll;
    position: relative;
    padding-bottom: 30px;   


.col1 
    height: 100%;
    width: 50%;
    position: relative;
    float: left;


.col2 
    height: 100%;
    width: 50%;
    position: relative;
    float: right;

【讨论】:

【参考方案2】:

HTML

<div class="col2"  onscroll="OnScroll(this)">!Stuff</div>

javascript函数

function OnScroll(div) 
var div1 = document.getElementById("col1");
div1.scrollTop = div.scrollTop;

【讨论】:

以上是关于让两个 div 共享同一个滚动条?的主要内容,如果未能解决你的问题,请参考以下文章

如何让DIV随着左右滚动条移动,上下滚动条不变

怎么让div内容超出后自动显示滚动条

js怎么让body滚动条滚动到底或者到底了 鼠标再滚动时让另外一个DIV滚动

如何让DIV固定在页面而不随着滚动条随意滚动

怎么样在一个设置了滚动条的div 让某些东西可以超出div范围

div中镶嵌一个iframe,怎么让iframe的滚动条不起作用,而div的滚动条起作用