【发布时间】:2020-04-26 08:46:41
【问题描述】:
我正在尝试编写一些代码来制作一个粘性导航栏,这样当我向下滚动时位置是固定的,但是它不起作用。我想知道 CSS 是否有问题,因为大多数 HTML 和 javascript 不会真正影响它。我在我的其他一些网站上尝试过,它们可以正常工作,但在这个网站上似乎不起作用。
<div id="main-nav">
<nav>
<h2 id="logo" class="main-nav">Captain Max from ERA</h2>
<br>
<ul class="main-nav">
<li> <a href="#">Listings</a></li>
<li> <a href="#">Get in touch</a></li>
<li> <a href="#">Projects</a></li>
</ul>
</nav>
</div>
脚本在这里,但我不确定这是否有任何问题。
<script>
var navbar = document.getElementById("main-nav");
var sticky = navbar.offsetTop;
function myFunction() {
if (window.pageYOffset >= sticky) {
navbar.classList.add("sticky")
} else {
navbar.classList.remove("sticky");
}
</script>
CSS 在这里,似乎我创建了一个属性来改变粘滞键盘的工作方式。
.sticky {
position: fixed;
top: 0;
width: 100%
}
.sticky + .content {
padding-top: 60px;
}
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
html {
font-family: 'Raleway', sans-serif;
font-size: 20px;
font-weight: 300;
text-rendering: optimizeLegibility;
}
nav {
background-color: #7b8195;
color: #e9e6df;
overflow: hidden;
}
#logo {
font-family: 'Raleway', sans-serif;
font-size: 250%;
border-top: 10px;
padding-right: 150px;
padding-left: 10px;
padding-top: 10px;
}
nav li {
display:inline-block;
margin-left: 40px;
}
.main-nav {
float: left;
list-style: none;
margin-right: 60px;
border-bottom: 10px;
padding-bottom: 10px;
}
.main-nav li a {
float: right;
color: #e9e6df;
text-decoration: none;
font-size: 90%;
}
.main-nav li a:link,
.main-nav li a:visited{
padding-bottom: 8px;
color: #e9e6df;
text-decoration: none;
font-size: 90%;
border-bottom: 2px solid transparent;
transition: border-bottom 0.2s;
}
.main-nav li a:hover,
.main-nav li a:active{
border-bottom: 2px solid #e9e6df;
}
网站链接是here
【问题讨论】:
-
不应该是 document.getElementById('main-nav') 吗?此外,您不需要在 h2 和 ul 上使用相同的类 - 您可以使用 .main-nav ul 来定位 ul。
-
哦,好的,谢谢。我会试试的。
标签: javascript html css onscroll