在视口上切换 class

Troggle class on viewport

我有我的导航。当我到达视口 < 860px 时,class <nav class="nav" 需要 <nav class="nav-mobile" 我走得很远,但真的需要摆脱``class="nav"。下面的脚本只添加 nav-mobile 但不删除 class="nav".

    $(window).on('resize', function () {
        $('.nav').toggleClass('nav-mobile', $(window).width() < 860);
    });

使用函数 addClassremoveClass

function setSize(){
  if($(window).width() < 860){
    $('.nav').addClass("nav-mobile");
    $('.nav-mobile').removeClass("nav");
  }
  else{
    $('.nav-mobile').addClass("nav");
    $('.nav').removeClass("nav-mobile");
  }

}
$(document).ready(function () {
  setSize();
});
$(window).on('resize', function () {
  setSize();
});

但是,为了让您的网站正常降级,您应该 CSS3 出于安全原因禁用 jS 的浏览器使用媒体查询。考虑阅读有关如何制作网站的文章 responsive

jQuery解法

function appResize()
{
   if($(window).width() < 860){
        $('nav').addClass("nav-mobile");
        $('nav').removeClass("nav");
      }
      else{
        $('nav').removeClass("nav-mobile");
        $('nav').addClass("nav");
      }
}

$(function(){
appResize();
})

$(window).on('resize', function () {
  appResize();
});

工作演示http://jsfiddle.net/7fs7xrma/1/

CSS3解决方案使用CSS media queries

html

<nav class="nav"></nav>

css

.nav{
     background:red; 
     height:20px;
    }

@media screen and (max-width : 860px){
.nav{
    background:blue;
    }
}

jsFiddle 演示 http://jsfiddle.net/7fs7xrma/2/