【发布时间】:2021-10-19 03:48:57
【问题描述】:
我是一名初级程序员,我正在尝试创建这种效果,当我滚动经过 HTML 中的特定元素时,导航栏中按钮的颜色会改变颜色。我认为这样做的正确方法是 jQuery。我在获取页面中元素的位置时遇到问题。我尝试过使用 position() 和 offset() 方法。但似乎两者都不起作用。
我想获取 ID 为“info”和“security”的元素的垂直位置。我有这些方法在某些情况下不是很可靠,但我找不到替代方法。
这是我目前的代码:
$(window).on('load', function(){
window.loaded = true;
console.log("LOADED");
});
$( window ).scroll(function() {
if (window.loaded == true){
var scrollTop = $(window).scrollTop();
var infopos = $( "#info" );
var secpos = $("#security");
if (scrollTop >= 0 && scrollTop < infopos-25) {
$( "#navgeneral" ).addClass("active");
$( "#navinfo" ).removeClass("active");
$( "#navsecurity" ).removeClass("active");
}
else if (scrollTop >= infopos && scrollTop < secpos){
$( "#navgeneral" ).removeClass("active");
$( "#navinfo" ).addClass("active");
$( "#navsecurity" ).removeClass("active");
}
}
});`
提前感谢您的建议!!
【问题讨论】:
标签: javascript html jquery css