在移动设备上滚动时,如何更改<nav>的颜色?

时间:2018-07-14 23:58:36

标签: javascript mobile scroll

  

我已经在台式机上做到了,但是当我尝试在移动设备上运行代码时,由于某种原因它崩溃了

    window.onscroll = () => {
  const nav = document.querySelector('#navbar');
 var viewportWidth = $(window).width();        
if (viewportWidth > 1020) {
        if(this.scrollY <= 500) nav.className = ''; else nav.className = 'scroll';}

};

1 个答案:

答案 0 :(得分:1)

使用JS时,响应式设计通常很难模仿,因此不要对JS做过多的事情:

window.onscroll = () => {
  const nav = document.querySelector('#navbar');
  nav.className = (this.scrollY <= 500) ? '' : 'scroll';
};

并使用CSS媒体查询来仅在移动设备上更改颜色:

#navbar.scroll {
  /* when scrolling on desktop */
  background-color: green;
}


@media screen and (max-width: 1019px) {
  #navbar.scroll {
    /* when scrolling on tablets or mobile */
    background-color: red;
  }
}