jquery – 如何将固定的div高度比视口粘到身体上

前端之家收集整理的这篇文章主要介绍了jquery – 如何将固定的div高度比视口粘到身体上前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我知道div的定位(固定,绝对和相对).我可以将固定的div附加到身体上,以便在滚动身体时它会粘到相同的位置.我在这里问一个不同的问题.

我有一个高度超过视口高度的侧边栏,我希望它固定在身体上.滚动身体时,它也应该滚动但是一旦固定div的底部可见,它就不应该与身体一起滚动.

例如,Facebook墙的右侧边栏与主体一起滚动,一旦右侧边栏底部可见(固定),就会停止与主体一起滚动.

解决方法

这可以通过将侧边栏置于绝对位置并在窗口滚动位置通过底部时将其更改为固定.

CSS:

#sidebar {
    height: 120%;
    width: 100px;
    border: 2px solid blue;
    padding: 20px;
    margin: 20px;
    position: absolute;
    top: 0;
}

jQuery:

$(document).ready(function() {
    var bottomPos = $('#sidebar').outerHeight(true) - $(window).height();
    $(window).scroll( function() {
        if ( $(window).scrollTop() > bottomPos ) {
            $('#sidebar').css({'position':'fixed','top':'auto','bottom':'0px'});
        } else {
            $('#sidebar').css({'position':'absolute','top':'0px'});
        }
    });
});

a demo.

原文链接:https://www.f2er.com/jquery/177310.html

猜你在找的jQuery相关文章