如果两个元素之间的距离小于X你Ÿ

问题描述:

我想计算网站页脚和侧边栏之间的距离(具有可变的margin-top属性,因为它是模仿一个固定位置元素。)如果两个元素之间的距离小于X你Ÿ

在较小的分辨率下,侧边栏将在页脚顶部滚动​​。为了解决这个问题,我想隐藏侧栏,当它从页脚开始是X px时,然后在页脚上方滚动X px时再次显示它。

我试过下面的代码(这是在窗口滚动功能),但这是返回一个负数&不按预期方式工作。

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

     console.log(distance); 

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

试试这个。

$(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()里面增加了那个部分,这样每次滚动时都会检查它。

+0

看起来可以工作,但它看起来好像是在计算页脚底部而不是顶部的距离。偏移不应该从元素的顶部开始? – tctc91

+0

我对此不太确定,但如果出现问题,我会编辑解决该问题的答案(通过减去页脚的高度)。 – KBN

+0

完美,谢谢! – tctc91