JS 代码:
window.onscroll = function() {myFunction();};
var navbar = document.getElementById("navbar");
var sticky = navbar.offsetTop;
function myFunction() {
if (window.pageYOffset >= sticky) {
navbar.classList.add("sticky");
} else {
navbar.classList.remove("sticky");
}
}
这有什么问题吗?我找到了一个 w3school 粘性导航的例子。 在控制台中显示:
Uncaught TypeError: Cannot read property 'offsetTop' of null
最佳答案
看起来找不到任何 id “navbar”
的元素。
这可能是由于没有 id “navbar”
的元素造成的。
或者,如果您确实有一个名为“navbar”的元素,则此代码可能会在页面完成加载之前运行。解决此问题的最简单方法是将 javascript 放在页面底部。或者,您可以使用 jQuery 的 $(document).ready
,或 this question 中的普通替代方案之一。 .
关于javascript - 无法读取 null 的属性 'offsetTop'(粘性导航栏),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55070744/