我已经搜索了插件来执行此操作,但找不到任何插件。我自己使用 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