无法读取null的属性'offsetTop'(粘性导航栏)
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了无法读取null的属性'offsetTop'(粘性导航栏)相关的知识,希望对你有一定的参考价值。
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示例。在控制台中显示:
未捕获的TypeError:无法读取null的属性'offsetTop'
答案
它看起来无法找到id为"navbar"
的任何元素。
这可能是因为没有一个id为"navbar"
的元素。
或者,如果您有一个名为"navbar"
的元素,则此代码可能在页面加载完成之前运行。解决此问题的最简单方法是将javascript放在页面底部。或者,您可以使用jQuery的$(document).ready
,或this question的其中一种香草替代品。
另一答案
因为您的演示不是名为'navbar'的元素
您应该在html代码中创建类似此div的标记
<div id='navbar'></div>
以上是关于无法读取null的属性'offsetTop'(粘性导航栏)的主要内容,如果未能解决你的问题,请参考以下文章
javascript 20180521 slickのエラー(无法读取属性'add'的null)
markdown API:Google:未捕获TypeError:无法读取null的属性'offsetWidth'
Highcharts-TypeError:无法读取null的'isResponsiveOptions'属性