【发布时间】:2020-02-24 17:26:03
【问题描述】:
我已经设法整理了一些代码,允许我的导航栏在用户滚动时缩小,但是我也希望导航链接的字体大小减小,但我似乎遗漏了一些东西,无论如何都不会发生我写我的代码。
由于我不想单独定位每个链接文本,因此我尝试设置一个类并使用 getElementsByClassName 和 style.fontsize 定位该类。我还尝试创建一个 CSS 类并在滚动时应用它。
这是我的 js 代码:
window.onscroll = function() {scrollFunction()};
function scrollFunction() {
if (document.body.scrollTop > 80 || document.documentElement.scrollTop > 80) {
document.getElementById("navbarTop").style.padding = "10px 0px";
document.getElementById("logo").style.width = "40%";
document.getElementsByClassName("nav-link .topItem").addClass('scrollFontSize');
} else {
document.getElementById("navbarTop").style.padding = "40px 10px";
document.getElementById("logo").style.width = "50%";
}
}
这是 HTML:
<div class="collapse navbar-collapse" id="navbarToggler">
<ul class="navbar-nav ml-auto mt-2 mt-lg-0">
<li class="nav-item ml-auto active">
<a class="nav-link topItem" href="#">HEM<span class="sr-only"> (Aktiv)</span></a>
</li>
<li class="nav-item ml-auto">
<a class="nav-link topItem" href="#">BLOGG</a>
</li>
<li class="nav-item ml-auto">
<a class="nav-link topItem" href="#">RESURSER</a>
</li>
<li class="nav-item ml-auto">
<a class="nav-link topItem" href="#">KONTAKT</a>
</li>
</ul>
</div>
还有 CSS:
.scrollFontSize {
font-size: 12px;
}
【问题讨论】:
-
任何 console.error?
-
getElementsByClassName("nav-link .topItem")无效。首先因为类名只需要用空格分隔,不包括.前缀,其次因为参数不是选择器;这是要查找的各个类的列表。我建议使用querySelectorAll()并循环查看结果。或者,您可以使用 jQuery 简化这一切,因为您已经标记了它 -
这里可以用jQuery吗?
-
可能是我对这段代码做了太多改动,以至于我不知道什么是 jQuery,什么是纯 js。
标签: javascript jquery