html - 用一个滚动条滚动两个容器

标签 html css scrollbar overflow

我正在尝试仅使用一个滚动条来控制两个容器。我有一个大容器,我移动它(使用 CSS 翻译)以显示另一个粘在屏幕和右侧的容器。你可以在这里看到我的实验:

http://codepen.io/anon/pen/ipaCI

我想要的是仅使用外部滚动条(控制大和大 div)来滚动两者。我不是在寻找任何同步滚动,我希望滚动条先将小容器向右滚动,当滚动到尽头时,我希望它向左滚动大容器。

我尝试过在包含这两个内容的主体上设置一个 overflow-y: scroll - 但我似乎无法控制右侧的那个。是因为固定了吗?如果我将它定位为绝对位置,它就像页面的一部分一样跟随 - 这不是预期的效果。

有人成功实现过这种情况吗?

最佳答案

我已经搜索了执行此操作的插件,但找不到任何插件。 我自己使用 jquery 想出了一个解决方案:

var $window = $(window),
  $panel = $('.right-panel'),
  windowPos = $window.scrollTop(),
  scrollPos = $window.scrollTop(),
  maxPos = $('.panel', $panel).height() - $window.height();

$window.on('scroll.panels-handler', function() {
  var scrollDelta = $window.scrollTop() - windowPos;
  windowPos = $window.scrollTop();
  scrollPos += scrollDelta;

  if (scrollPos < 0) {
    scrollPos = 0;
  } else if (scrollPos > maxPos) {
    scrollPos = maxPos;
  }
  $panel.scrollTop(scrollPos);
});

我为容器添加了最小和最大滚动值。基本上 - 它总是先滚动侧边栏 - 直到它到达尽头 - 然后只滚动主窗口。

我不知道如何只滚动侧边栏(主栏始终滚动)- 但我对解决方案感到满意。

有关工作演示,请参阅原始代码笔

http://codepen.io/anon/pen/ipaCI

关于html - 用一个滚动条滚动两个容器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14939699/

相关文章:

html - css 将填充添加到背景位置 [仅限 css]

css - 如何使用 CSS 网格强制页眉和页脚在页面上保持可见?

html - 使用 MSO 条件 &lt;!--[if !mso]> 时 Outlook.com 中的空 HTML 电子邮件

jquery - 2栏灵活布局

css - 如何在图像上显示 "next"、 "previous"按钮(鼠标悬停时)?

php - 将 CSS 字体速记转换为长手

javascript - 使用javascript控制水平滚动

html - 如何在firefox中设置垂直滚动条在左侧?

jquery - 基础 Accordion 全部激活或在页面加载时展开

jquery - 无论CSS的高度如何,div的自动高度