简单滚动javascript - 我可以干净地将一个类添加到多个其他类吗?

B. *_*ley 2 javascript jquery

我只是想知道是否有办法压缩这个脚本?我的JS非常粗糙,但似乎我应该能够插入一个或运算符来为任何传递的类添加收缩类,但我似乎无法获得正确的语法.它似乎有很多冗余.

$(window).scroll(function() {
  if ($(document).scrollTop() > 50) {
    $('nav').addClass('shrink');
  } else {
    $('nav').removeClass('shrink');
  }
    if ($(document).scrollTop() > 50) {
    $('.nav a').addClass('shrink');
  } else {
    $('.nav a').removeClass('shrink');
  }
    if ($(document).scrollTop() > 50) {
    $('.navbar-brand').addClass('shrink');
  } else {
    $('.navbar-brand').removeClass('shrink');
  }
});
Run Code Online (Sandbox Code Playgroud)

或者有没有办法将类添加到给定元素的所有子元素?

ade*_*neo 7

$(window).on('scroll', function() {
    $('nav, nav a, .navbar-brand').toggleClass('shrink', $(this).scrollTop() > 50);
});
Run Code Online (Sandbox Code Playgroud)

使用多重选择器来定位所有匹配元素,使用toggleClass根据第二个参数切换类,即"状态".
this引用window的事件处理中,并且$(window).scrollTop() 应该是相同$(document).scrollTop()的99.99%的时间.