因此,我在导航菜单中有此代码,当我进入智能手机视图时(即添加了“响应”类),我不希望第3行的所有内容都发生。但是,当我向下滚动时,背景仍然会更改颜色。感觉就像我的浏览器以某种方式使我的第一个if语句的右括号与其他一些混淆。我做错了什么?

$(document).ready(function(){
  if(!$(".site-nav").hasClass("responsive")){
    $(window).scroll(function(){
        $(".site-nav").css("top",Math.max(-10,130-$(this).scrollTop()));
    });

    $(window).on("scroll",function(){
    var wn = $(window).scrollTop();

    if(wn > 130){
        $(".site-nav").css("background","rgba(225,225,225,0.7)");
    }
    else{
        $(".site-nav").css("background","rgba(0,0,0,0)");
    }

    });
  }
});

最佳答案

在事件内部使用if语句

  $(document).ready(function(){

        $(window).on("scroll",function(){
          if(!$(".site-nav").hasClass("responsive"))
          {

            $(".sitenav").css("top",Math.max(-10,130-$(this).scrollTop()));
            var wn = $(window).scrollTop();

            if(wn > 130){
                $(".sitenav").css("background","rgba(225,225,225,0.7)");
            }
            else{
                $(".site-nav").css("background","rgba(0,0,0,0)");
            }
          }


        });

    });

10-07 19:07
查看更多