我遇到了创建粘性标题的功能问题。
代码是这样的:
function stick() {
var stickyNavTop = headerNav.offset().top;
var scrollTop = window.scrollTop();
while (stickyNavTop> scrollTop) {
headerNav.className +=("sticky");
}
else {
headerNav.className -= ("sticky")
}
}
CSS有一个简单的.sticky {position:fixed}
我认为问题出在DOM中,但我不知道如何修复它。虽然我知道jQuery可以更容易地做到这一点,但这样做的目的是学习JavaScript,所以我在纯JS而不是jQuery中寻找答案。还有我可能遇到的任何其他问题,请加以强调,因为他们会非常感激。
提前致谢。
答案 0 :(得分:1)
我刚刚做了一个新的函数调用。
var headerNav = document.getElementById("navbar");
window.onscroll = function() {
console.log('scrolled');
var scrollTop = window.pageYOffset;
document.getElementById("navbar").style.top =scrollTop+"px";
}
这个Demo
你也可以设置style.position =" absolute&#34 ;;在javascript函数中。
答案 1 :(得分:0)
const header = document.getElementById('**HEADER ID**');
addClassHeader = () => {
header.classList.add("sticky");
}
removeClassHeader = () => {
header.classList.remove("sticky");
}
window.addEventListener('scroll', function () {
let getScrollposition = window.scrollY;
if (getScrollposition > 0) {
addClassHeader();
} else {
removeClassHeader();
}
});