【发布时间】:2017-07-02 00:22:23
【问题描述】:
我有一个问题,我有两个 divs、#divOne 和 #divTwo,我试图让它在滚动大于或等于特定高度时变为另一个菜单。
我的第一个菜单在#divOne,第二个在#divTwo,但是当达到特定高度并将滚动条保持在同一位置时,菜单会快速更改多次,而我将滚动条保持在同一位置
这是我的代码:
$(window).scroll(function() {
if ($(this).scrollTop() >= 500) {
$('#divTwo').removeClass('hidden');
$('#divOne').addClass('hidden');
} else {
$('#divOne').removeClass('hidden');
$('#divTwo').addClass('hidden');
}
});
我认为是因为当条件为真时#divOne 具有特定的高度并且是隐藏的,所以scrollTop 的值会发生变化,例如更改为 400 并做出一种奇怪的行为,我尝试添加高度#divOne 之前到 scrollTop 但我无法使其工作,所以我正在寻求帮助以解决此问题或以其他方式实现此目的,希望您能帮助我,谢谢。
你可以在这里看到JSFiddle
注意:我忘了说第二个菜单是固定的。
【问题讨论】:
-
如果它有助于解决问题,如果 scrollTop 恰好落在 503 上,它会触发回滚到 495,从而触发回滚到 503,等等。
标签: javascript jquery