jQuery:检查是否在一个元素上方和另一个元素下方滚动

时间:2018-04-26 04:51:54

标签: javascript jquery scroll

我正在尝试对单页网站进行编码,以便当用户滚动到页面的某些部分时,导航会作为响应进行更改。我正在使用此代码来检查用户何时滚动到元素:

if($(window).scrollTop()>=$('#element1').position().top){
   function...
}

代码正常工作,但如果我尝试比较两个不同的元素,则会停止。

if($(window).scrollTop()>=$('#element1').position().top && 
$(window).scrollTop()<$('#element2').position().top){
    function...
}

或(||)属性确实有效,但我正在尝试根据它们所在的部分进行更改。我需要更改哪些才能使其正常工作?

1 个答案:

答案 0 :(得分:0)

scrollTop()是相对于窗口的,但position().top是相对于偏移的父级。

您应该在此使用$.offset()代替$.position()

if($(window).scrollTop() >= $('#element1').offset().top && 
$(window).scrollTop() < $('#element2').offset().top){
    function...
}
相关问题