我正在尝试对单页网站进行编码,以便当用户滚动到页面的某些部分时,导航会作为响应进行更改。我正在使用此代码来检查用户何时滚动到元素:
if($(window).scrollTop()>=$('#element1').position().top){
function...
}
代码正常工作,但如果我尝试比较两个不同的元素,则会停止。
if($(window).scrollTop()>=$('#element1').position().top &&
$(window).scrollTop()<$('#element2').position().top){
function...
}
或(||)属性确实有效,但我正在尝试根据它们所在的部分进行更改。我需要更改哪些才能使其正常工作?
答案 0 :(得分:0)
scrollTop()
是相对于窗口的,但position().top
是相对于偏移的父级。
您应该在此使用$.offset()代替$.position()。
if($(window).scrollTop() >= $('#element1').offset().top &&
$(window).scrollTop() < $('#element2').offset().top){
function...
}