如果两个元素之间的距离小于X则为Y.

时间:2013-09-25 12:55:13

标签: javascript jquery offset

我正在尝试计算网站页脚和侧边栏之间的距离(它具有可变边距顶部属性,因为它模仿固定位置元素。)

在较小的分辨率下,侧边栏将在页脚顶部滚动​​。为了解决这个问题,我希望隐藏侧边栏,当它是来自页脚的X px,然后一旦它在页脚上方滚动X px后再显示它。

我已经尝试了下面的代码(在窗口滚动功能中),但这会返回一个负数&没有按预期工作。

        distance = sidebar.offset().top - footer.offset().top;

        console.log(distance);

        if ( distance > -500) {
            sidebar.fadeOut('fast');
        } else {
            sidebar.fadeIn('fast');
        }  

1 个答案:

答案 0 :(得分:1)

试试这个。

$(window).scroll(function() {
//changed order, now you won't get negative number
distance = (footer.offset().top - footer.outerHeight() ) - sidebar.offset().top;

if( distance <= 50 ) // 50 or any distance you want
 sidebar.fadeOut(500);
else
 sidebar.fadeIn(500);

});

$(window).scroll()中添加了该部分,以便每次滚动时都会对其进行检查。