简单滚动 我可以干净地将一个类添加到多个其他类吗?
Simple scroll Can I add a class to multiple other classes cleanly?
我只是想知道是否有办法压缩这个脚本?我的 JS 非常粗糙,但似乎我应该能够插入一个 or 运算符将收缩类添加到任何通过的类中,但我似乎无法获得正确的语法。这似乎有很多冗余。
$(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');
}
});
或者有没有办法将类添加到给定元素的所有子元素?
$(window).on('scroll', function() {
$('nav, nav a, .navbar-brand').toggleClass('shrink', $(this).scrollTop() > 50);
});
使用 multiple 选择器定位所有匹配的元素,并切换 TClass 根据第二个参数(即"状态")切换类。
this
引用事件处理程序中的window
,并且$(window).scrollTop()
应该与 99.99% $(document).scrollTop()
相同。
大概是这样的?
$(window).scroll(function() {
if ($(document).scrollTop() > 50) {
$('nav, .nav a, .navbar-brand').addClass('shrink');
}
else {
$('nav, .nav a, .navbar-brand').removeClass('shrink');
}
});
你可以试试:
$(window).scroll(function() {
if ($(document).scrollTop() > 50) {
$('nav, .nav a, .navbar-brand').addClass('shrink');
} else {
$('nav, .nav a, .navbar-brand').removeClass('shrink');
}
});
看看:https://api.jquery.com/multiple-selector/
相关文章:
- 在窗口中添加滚动条
- 向表单添加滚动功能
- 如何在html5,Android,Phonegap中添加滚动条
- 使用JavaScript向jQuery自动完成添加滚动条
- 在javascript中添加滚动条
- 如何在volusion网站中添加滚动到顶部的浮动按钮
- Fullpage.js.添加滚动延迟
- 如何为模式窗口中呈现的部分视图添加滚动条
- 如何添加滚动到引导框对话框
- 添加滚动条
- JQuery 添加“滚动”按钮,并在有新数据可用时刷新主页
- 如何向脚本窗口添加滚动速度
- 如何在每个窗帘在中间相遇后添加滚动延迟
- 如何通过JavaScript / css在弹出窗口中添加滚动条
- 使用jQuery.off或.unbind删除和添加滚动事件处理程序
- 为动态生成的选择选项添加滚动条
- 向幻灯片放映添加滚动显示样式
- 每当浏览器添加滚动条时,内容都会水平跳转
- 如何在android phonegap中启用/添加滚动条
- 如何在表格中添加滚动条