我只是想知道是否有办法压缩这个脚本?我的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)
或者有没有办法将类添加到给定元素的所有子元素?
$(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%的时间.