这是很有可能的,但需要一种棘手的 JS 方法——据我估计,您的问题没有可能的 CSS 解决方案。
我在这里创建了一个小提琴 - http://jsfiddle.net/teddyrised/szuzk/,这或多或少是对你原来的小提琴的概念验证修改,但在你离开之前,我恳请你理解我的方法第一的 :)
您遇到的问题是滚动条位于滚动元素的底部,无论视口的高度如何。为了将滚动条带到视口的底部(而不是滚动元素),您必须调整元素的大小,使元素的底部始终位于视口的底部,而不是更低。
这是通过检测.scroll
事件并随后在旅途中重新计算元素高度来完成的。但是,这也意味着该元素不会占用原本预期的 1500 像素高度 - 因此我们创建了一个环绕元素并将该高度分配给它。
$(document).ready(function () {
// Create wrap around element
$('#big').wrap('<div id="scroll-wrap" />');
// Function: resize element when scrolling
function recalcHeight() {
$('#big').css({
'height': $(window).height() + $(window).scrollTop() - $('#big').offset().top
});
}
// Resize wrap around element upon resize
$(window).resize(function () {
$('#scroll-wrap').css({
'height': $('#big').css('max-height')
});
}).resize(); // Fires resize() event onload
// Recalculate height upon load, and upon scroll
recalcHeight();
$(window).scroll(function () {
recalcHeight();
});
});
就这样 ;)