javascript - 使用 scrollspy 和 jQuery 使第一个菜单项在加载时变为红色
问题描述
有人可以帮我写代码吗?下面的代码使我的菜单项在添加了“scrollspy”的 div 内滚动时变为红色。但是缺少一些东西,所以我的第一个菜单项(主页)在页面加载时不会变红,只有当我向下滚动一点时。我需要在加载时将第一项变为红色。我怎样才能解决这个问题?
使第一个菜单项在加载时处于活动状态的示例代码?
window.onload = function() {
//code?
};
当在管理员的一行中添加“scrollspy”类时,这会使菜单项变为红色
var elems = $('.scrollspy');
$(window).bind('scroll', function() {
var currentActive = null;
var currentActiveDistance = -1;
var currentTop = $(window).scrollTop();
elems.each(function(index) {
var elemTop = $(this).offset().top - 102
var id = $(this).attr('id');
var navElem = $('.menu a[href="#' + id + '"]');
navElem.removeClass('active');
if (currentTop >= elemTop) {
var distance = currentTop - elemTop;
if (currentActiveDistance > distance || currentActiveDistance == -1) {
currentActive = navElem;
}
}
});
if (currentActive) {
currentActive.addClass('active');
}
});
解决方案
为什么不只使用 CSS?
.nav li a.active {
background-color: red;
}
推荐阅读
- python - `isinstance` 与 `collecitons.abc.Collection` 和 `collections.abc.Mapping` 的不同结果
- vb.net - VB.NET 在拖放时检查 keydown
- java - 通过 Maven / Eclipse 导入 Spotify API 客户端库
- python - 带有 configparser 的打开函数的 TypeError
- azure - 在 terraform 中,如何为 azure 中的应用服务设置新的路径映射?
- android - 浏览器的 ADB 查询
- c++ - 为什么启用未定义的行为清理会干扰优化?
- c# - 为什么这行代码对 string[] 做一些事情会返回 bool?
- python-3.x - 如何在 `os.system` 或 `popen` 中使用多个参数
- mysql - 使用 SQL 识别表中的模式