我猜你希望向上滚动时页脚的错觉会缩小并粘住。
要找到相对于屏幕底部的滚动位置,您需要从滚动位置中减去视口高度$(window).scrollTop() - $(window).height()
:为了使过渡平滑,还要减去粘性页脚的高度。
然后你需要在页面上找到你的主要页脚的偏移量。这很容易使用$("#footer").offset()
.
对于逻辑,您只需要检查您的滚动位置是否是>=
您的页脚与顶部的偏移量并hide()
相应地使用。
所有这些都需要至少在三个场合完成:
document.load
window.resize
window.scroll
标记:
<html>
<head><title>Sticky Footer</title></head>
<body>
<div id="footergroup"></div>
<div id="bottomdiv"></div>
</body>
</html>
CSS:
#bottomdiv {
position:fixed;
bottom:0px;
left:0px;
width:100%;
height:40px;
background-color: red;
}
#footergroup {
height: 200px;
background: blue;
}
#padding {
height: 1000px;
}
jQuery:
$(document).on('load scroll', stickyFooter);
$(window).on('resize', stickyFooter);
function stickyFooter()
{
var $footer = $("#footergroup");
var $stickyFooter = $("#bottomdiv");
var footerOffsetTop = $footer.offset().top;
var viewportHeight = $(window).height();
// Subtract your sticky footer's height for a more seamless transition.
var scrollPosition = $(this).scrollTop() + viewportHeight - $stickyFooter.outerHeight();
// This is the real magic.
if(scrollPosition >= footerOffsetTop)
{
$stickyFooter.hide();
}
else
{
$stickyFooter.show();
}
}
请参阅此代码。