这是我的代码
// Get the navbar
let navbar = document.getElementById("navigation");
// Get the offset position of the navbar
let sticky = navbar.offsetTop;
// Add the sticky class to the navbar when you reach its scroll position. Remove "sticky" when you leave the scroll position
function stickyNavigation() {
if (window.pageYOffset >= sticky) {
navbar.classList.add("-sticky");
} else {
navbar.classList.remove("-sticky");
}
}
$(window).scroll(stickyNavigation);
stickyNavigation();
我有一些页面,没有导航栏,它显示错误“未捕获的TypeError:无法读取null的属性'offsetTop'”。如何为此做if / else语句?
我已经尝试过了:
if (navbar.length > 0) {
}
但是没有用。
答案 0 :(得分:2)
如果在某些情况下没有导航栏,请使用如下语句:
if (navbar) {
//some statements
} else {...}
答案 1 :(得分:1)
您正在尝试访问null
上的长度方法,这是不正确的。
if (navbar) {
//Do something
}
因为null是伪造的值,所以如果条件中没有任何导航栏元素,条件将自动失败。