【问题标题】:Adding class jQuery else if添加类 jQuery else if
【发布时间】:2017-07-17 20:35:30
【问题描述】:

我在滚动添加“固定”类时有一个固定的标题,这很好用。我向下滚动,在将 50px 类“固定”添加到我的标题容器后,当我向上滚动时,“固定”类被删除。

现在在我的博客页面上,我希望“固定”类始终存在,因此在页面加载时,甚至在上下滚动之后,我希望始终将“固定”类添加到我的标题容器中.

我在我的 js 中使用 if else 语句,但我似乎无法让它正常工作:

//Fixed header on scroll
    $(window).scroll(function() {    
        var scroll = $(window).scrollTop();

        if (scroll >= 50) {
            $(".header-wrapper").addClass("fixed");
        } else if {
            $('.blog .header-wrapper').addClass('fixed');
        } else {
            $(".header-wrapper").removeClass("fixed");
        }
    });

任何想法如何排序?

【问题讨论】:

    标签: javascript jquery html


    【解决方案1】:

    这样更有意义:在博客上设置固定类,并在添加滚动事件处理程序时测试我们是否有博客

    $('.blog .header-wrapper').addClass('fixed');
    if ($(".blog").length==0) {
      $(window).scroll(function() {    
        $(".header-wrapper").toggleClass("fixed",$(window).scrollTop()>=50); 
      });
    }  
    

    请注意,每个像素都会触发滚动事件,因此您可能需要debounce it

    【讨论】:

      【解决方案2】:

      您必须像这样在if 子句中使用条件:

      //Fixed header on scroll
      $(window).scroll(function() {    
          var scroll = $(window).scrollTop();
      
          if (scroll >= 50) {
              $(".header-wrapper").addClass("fixed");
          } else if($('.blog .header-wraper').length > 0) {
              $('.blog .header-wrapper').addClass('fixed');
          } else {
              $(".header-wrapper").removeClass("fixed");
          }
      });
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-04-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-05-11
        相关资源
        最近更新 更多