javascript - div 定位固定在 margin-top :20px when scrolling up

标签 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());
    });

最佳答案

一个简单的想法 - 我会删除 .rightCol block ,只留下 #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');
    }
});

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

祝你好运!

关于javascript - div 定位固定在 margin-top :20px when scrolling up,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7509034/

相关文章:

javascript - find() jquery 对象的第一个元素

javascript - 如何调用一个函数来重新加载另一个函数(例如在 "orientationchange()"上)?

javascript - 计算精确的百分比宽度

javascript - 使用相同文件的 Html/JS/PHP 两个页面看起来不同(仅在 chrome 中)

javascript - 为全选/取消全选时的每个复选框调用 jQuery 函数

javascript - 删除内部没有 <img> 的 DOM 生成元素

javascript - 如何将 javascript 对象转换为纯文本,以便在发布数据时我可以发布简单文本

javascript - 基于本地时间的月份重定向 Javascript

javascript - 根据另一个数组的值对数组进行排序

javascript - jQuery 更改了 html 页面的内容,但 "View Source"不反射(reflect)更改