Div定位固定在margin-top:向上滚动时为20px

时间:2011-09-22 02:52:12

标签: javascript jquery

我有一个div,当你向上滚动时,我希望从窗口顶部以20px固定,当你到达底部时,从页脚向上移动40px。我的代码似乎不稳定,必须有更好的方法吗? Page Link

$(document).scroll(function () {
        if($(window).scrollTop() >= 345){
            $('#rightShipping').css({'position' : 'fixed', 'top' : '0px'});
        }
        if($(window).scrollTop() <= 346){
            $('#rightShipping').css({'position' : '', 'top' : ''});
        }
        console.log($(window).scrollTop());
    });

1 个答案:

答案 0 :(得分:0)

一个简单的想法 - 我会删除.rightCol块,只留下#rightShipping一个top: 20px,父亲position: relative。然后使用此代码:

$(document).scroll(function () {

    var scrollTop = $(window).scrollTop();

    var offsetTop = $('#rightShipping').offset().top;
    var positionTop = $('#rightShipping').position().top;

    if (scrollTop >= offsetTop - positionTop) {
        $('#rightShipping').css('position', 'fixed');
    } else {
        $('#rightShipping').css('position' : 'relative');
    }
});

我真的不知道这是否有效,因为我没有测试它,我需要睡一会儿,但我希望它有所帮助。

祝你好运!