Javascript 我的else语句工作不正常

Javascript 我的else语句工作不正常,javascript,Javascript,//第一部分工作得很好,所以当我滚动超过导航条时,它就固定了。 //但当我返回页面顶部时,它不会将“固定”替换为“相对” //就像它应该做的那样,酒吧保持固定 nav-pc { background-color: black; font-weight: bold; position: relative; top: 0; width: 100%; } 这是因为在它被修复后,新的navposition将无限期地为0。要解决这个问题,请将变量var na

//第一部分工作得很好,所以当我滚动超过导航条时,它就固定了。 //但当我返回页面顶部时,它不会将“固定”替换为“相对” //就像它应该做的那样,酒吧保持固定

   nav-pc {
    background-color: black;
    font-weight: bold;
    position: relative;
    top: 0;
    width: 100%;
}

这是因为在它被修复后,新的
navposition
将无限期地为0。要解决这个问题,请将变量
var nav_position
放在函数外部,这样它就不会在应用程序执行过程中发生变化

   window.onscroll = function() {

    var navbar = document.getElementById('nav-pc');
    var nav_position = navbar.offsetTop;

    if (window.pageYOffset >= nav_position) {
    navbar.style.position = "fixed";
  } else {
    navbar.style.position = "relative";
  }
}

这是因为在它被修复后,新的
navposition
将无限期地为0。要解决这个问题,请将变量
var nav_position
放在函数外部,这样它就不会在应用程序执行过程中发生变化

   window.onscroll = function() {

    var navbar = document.getElementById('nav-pc');
    var nav_position = navbar.offsetTop;

    if (window.pageYOffset >= nav_position) {
    navbar.style.position = "fixed";
  } else {
    navbar.style.position = "relative";
  }
}

谢谢您的时间:),但仍然存在问题,现在它根本不工作。@Pulse然后可能有更多相关的代码您没有显示。你能做一个有效的代码片段吗?仅使用您提供的内容,我的测试就成功了。我试图将其添加到代码段中,但控制台显示:“消息”:“未捕获的TypeError:无法读取null的“offsetTop”属性”,“文件名”:“我明白了。。。好吧,无论如何添加它,这样我就可以看一看。它一直说你的帖子主要是代码,我已经写了5行解释了,仍然这么说:///谢谢你的时间:),但是仍然存在问题,现在它根本不起作用。@Pulse然后可能有更多相关的代码你没有显示。你能做一个有效的代码片段吗?仅使用您提供的内容,我的测试就成功了。我试图将其添加到代码段中,但控制台显示:“消息”:“未捕获的TypeError:无法读取null的“offsetTop”属性”,“文件名”:“我明白了。。。好吧,还是添加吧,这样我就可以看一看。它一直说你的帖子主要是代码,我已经写了5行解释,但仍然这么说:///
var navbar = document.getElementById('nav-pc');
var nav_position = navbar.offsetTop; // set once, and won't ever change

window.onscroll = function() {
  if (window.pageYOffset >= nav_position) {
    navbar.style.position = "fixed";
  } else {
    navbar.style.position = "relative";
  }
}