Javascript 恢复粘性导航栏的样式

Javascript 恢复粘性导航栏的样式,javascript,css,Javascript,Css,我正在使用wordpress创建一个网站。我试图生成一个粘性导航条,并成功地使用了以下代码: --JS: --CSS: 当页面向下滚动并调用sticky函数时,css应用于导航栏。 现在的问题是,当我将网页返回到其顶部时,导航栏应恢复到以前的样式,滚动后应用的css应释放其效果。我怎样才能做到这一点 谢谢。您只需保留“更大”并删除“等于”,因为这意味着如果滚动位置更大或等于0,则应用固定样式 这样写:if(window.scrollY>navTop)只需添加一条语句来检查页面是否位于顶部: el

我正在使用wordpress创建一个网站。我试图生成一个粘性导航条,并成功地使用了以下代码: --JS:

--CSS:

当页面向下滚动并调用sticky函数时,css应用于导航栏。 现在的问题是,当我将网页返回到其顶部时,导航栏应恢复到以前的样式,滚动后应用的css应释放其效果。我怎样才能做到这一点


谢谢。

您只需保留“更大”并删除“等于”,因为这意味着如果滚动位置更大等于0,则应用固定样式


这样写:
if(window.scrollY>navTop)

只需添加一条语句来检查页面是否位于顶部:

else if (scrollY == 0) {
    nav.classList.remove('fixed')
}
我还建议添加一个布尔变量,这样事件就不会一直触发,如下所示:

var ticking = false;

window.onscroll = function (e) {
  if (!ticking) {
    if (window.scrollY >= navTop) {
      nav.classList.add('fixed');
      ticking = true;
  } else if (scrollY == 0) {
    nav.classList.remove('fixed');
    ticking = false;
  } 

另外,我建议更改let on const,因为您不会更改值。感谢您花时间提供帮助。您建议的第二个代码被WordPress防火墙阻止。
else if (scrollY == 0) {
    nav.classList.remove('fixed')
}
var ticking = false;

window.onscroll = function (e) {
  if (!ticking) {
    if (window.scrollY >= navTop) {
      nav.classList.add('fixed');
      ticking = true;
  } else if (scrollY == 0) {
    nav.classList.remove('fixed');
    ticking = false;
  }