目标:
菜单列表包括当你向下滚动或向上滚动时应该显示的文本“咖啡、茶和牛奶”。
问题:
菜单列表咖啡,茶和牛奶将不会显示后,使用滚动和向下。
我错过了什么部分?

JSbin:
https://jsbin.com/rinewiduyi/edit?html,css,js,output
谢谢!
<!DOCTYPE html>
<html>
<head>
<title></title>
<meta charset="UTF-8" />
</head>
<body>
<div id="container">
<div id="top-content" class="palette-1">
<div id="testtest">
<img src="https://www.logolynx.com/images/logolynx/1f/1fa1c2a2ea0d69a85215d878f3a0652a.jpeg" width="100px" height="45px" />
</div>
<ul id="iconmenu" class="nav-menu">
<li class="title">Coffee</li>
<li class="title">Tea</li>
<li class="title">Milk</li>
</ul>
</div>
<div id="content" class="palette-2">
content
<br />
content
<br />
content
<br /> content
<br /> content
<br /> content
<br /> content
<br /> content
<br /> content
<br /> content
<br /> content
<br /> content
<br /> content
<br /> content
<br /> content
<br /> content
<br /> content
<br /> content
<br /> content
<br /> content
<br /> content
<br /> content
<br /> content
<br /> content
<br /> content
<br /> content
<br /> content
<br /> content
<br /> content
<br /> content
<br /> content
<br /> <br /> content
<br /> content
<br /> content
<br /> content
<br /> content
<br /> content
<br /> content
<br /> content
<br /> content
<br /> content
<br /> content
<br /> content
<br /> content
<br /> content
<br /> content
<br /> <br /> content
<br /> content
<br /> content
<br /> content
<br /> content
<br /> content
<br /> content
<br /> content
<br /> content
<br /> content
<br /> content
<br /> content
<br /> content
<br /> content
<br /> content
<br /> content
<br /> content
<br /> content
<br /> content
<br /> content
<br /> content
<br /> content
<br /> content
<br /> content
<br /> content
<br /> content
<br /> content
<br /> content
<br /> content
<br /> content
<br /> content
<br /> content
<br /> content
<br /> content
<br /> content
<br /> content
<br /> content
<br /> content
<br /> content
<br /> content
<br /> content
<br /> content
<br /> content
<br /> content
<br /> content
<br /> content
<br /> content
<br /> content
<br /> content
<br /> content
<br /> content
<br /> content
<br /> content
<br /> content
<br /> content
<br /> content
<br /> content
<br /> content
<br /> content
<br /> content
<br /> content
<br /> content
<br /> content
<br /> content
<br /> content
</div>
<div id="footer" class="palette-4">
footer
</div>
</div>
</body>
</html>body {
color: white;
text-align: center;
box-sizing: content-box;
margin: 0;
}
.palette-1 {
background-color: #83B2FF;
}
.palette-2 {
background-color: #8BF18B;
}
.palette-4 {
background-color: #FF8650;
}
.palette-5 {
background-color: #FF555E;
}
#content {
grid-area: content;
}
#footer {
grid-area: footer;
}
@media only screen and (min-width: 1000px) {
#container {
background-color: #FFE981;
width: 100%;
display: grid;
grid-template-areas:
"left-header header right-header"
"left-content content right-content"
"left-footer footer right-footer";
row-gap: 1rem;
grid-template-columns: 1fr 1000px 1fr;
grid-template-rows: auto auto auto;
grid-gap: 5px;
box-sizing: border-box;
height: 100%;
background-color: #8cffa0;
}
#top-content {
/* */
overflow: hidden;
position: fixed;
width: 100%;
height: 50px;
grid-area: header;
display: flex;
align-items: center;
justify-content: center;
}
#content {
margin-top: 50px;
}
#asdfasdf {
display: none;
}
ul.nav-menu {
margin: 0;
}
ul.nav-menu > li {
display: inline-block;
padding: 0 10px 0 10px;
margin: 0;
line-height: 70px;
border-top: 1px solid #83B2FF;
}
ul.nav-menu > li:hover {
background-color: #2779BF;
border-top: 1px solid #425c62;
}
}
@media only screen and (max-width: 999px) {
#container {
background-color: #FFE981;
width: 100%;
display: grid;
grid-template-areas:
"header"
"content"
"footer";
row-gap: 1rem;
grid-template-columns: 1fr;
grid-template-rows: auto auto auto;
grid-gap: 5px;
box-sizing: border-box;
height: 200px;
background-color: #8cffa0;
}
#top-content {
grid-area: header;
display: flex;
align-items: center;
justify-content: center;
border-top: 3px solid #425c62;
}
#asdfasdf {
display: none;
}
ul.nav-menu {
margin: 0;
}
ul.nav-menu > li {
display: inline-block;
padding: 0 10px 0 10px;
margin: 0;
line-height: 70px;
border-top: 1px solid #83B2FF;
}
ul.nav-menu > li:hover {
background-color: #2779BF;
border-top: 1px solid #425c62;
}
#content {
}
} window.onscroll = function () {
scrollFunction();
};
// get initial pageYOffset value
let originOffset = window.pageYOffset;
function scrollFunction() {
// current pageYOffset value
const curOffset = window.pageYOffset;
if (curOffset - originOffset > 0 && document.documentElement.scrollTop > 100) {
// down
document.getElementById('top-content').style.display = 'none';
document.getElementById("top-content").style.marginTop = "-50px";
} else {
// up
document.getElementById('top-content').style.display = 'block';
document.getElementById("top-content").style.marginTop = "0";
}
// change originOffset value every time
originOffset = window.pageYOffset;
}发布于 2022-09-24 14:55:05
我想我找到你的问题了。其实@Vijay的答案是正确的。但让我补充一点细节。
菜单实际上在那里,但是它的容器高度不足以显示它,因为在您的@media only screen and (min-width: 1000px中,您将height: 50px设置为top-content。但是在其他媒体查询中给它200 so,所以它实际上在小于1000 so的屏幕上工作。
另一个问题是,top-content的默认显示是flex,但是在js代码中将其设置为阻塞,每个显示都会产生不同的结果。
因此,在CSS中给它提供足够的height,或者在js代码中使用默认样式,即flex。
window.onscroll = function() {
scrollFunction();
};
// get initial pageYOffset value
let originOffset = window.pageYOffset;
function scrollFunction() {
// current pageYOffset value
const curOffset = window.pageYOffset;
if (curOffset - originOffset > 0 && document.documentElement.scrollTop > 100) {
// down
document.getElementById('top-content').style.display = 'none';
document.getElementById("top-content").style.marginTop = "-50px";
} else {
// up
document.getElementById('top-content').style.display = 'block'; // change this to flex
document.getElementById("top-content").style.marginTop = "0";
}
// change originOffset value every time
originOffset = window.pageYOffset;
}body {
color: white;
text-align: center;
box-sizing: content-box;
margin: 0;
}
.palette-1 {
background-color: #83B2FF;
}
.palette-2 {
background-color: #8BF18B;
}
.palette-4 {
background-color: #FF8650;
}
.palette-5 {
background-color: #FF555E;
}
#content {
grid-area: content;
}
#footer {
grid-area: footer;
}
@media only screen and (min-width: 1000px) {
#container {
background-color: #FFE981;
width: 100%;
display: grid;
grid-template-areas: "left-header header right-header" "left-content content right-content" "left-footer footer right-footer";
row-gap: 1rem;
grid-template-columns: 1fr 1000px 1fr;
grid-template-rows: auto auto auto;
grid-gap: 5px;
box-sizing: border-box;
height: 100%;
background-color: #8cffa0;
}
#top-content {
overflow: hidden;
position: fixed;
width: 100%;
height: 150px; /* changed this from 50 to bigger height */
grid-area: header;
display: flex;
align-items: center;
justify-content: center;
}
#content {
margin-top: 50px;
}
#asdfasdf {
display: none;
}
ul.nav-menu {
margin: 0;
}
ul.nav-menu>li {
display: inline-block;
padding: 0 10px 0 10px;
margin: 0;
line-height: 70px;
border-top: 1px solid #83B2FF;
}
ul.nav-menu>li:hover {
background-color: #2779BF;
border-top: 1px solid #425c62;
}
}
@media only screen and (max-width: 999px) {
#container {
background-color: #FFE981;
width: 100%;
display: grid;
grid-template-areas: "header" "content" "footer";
row-gap: 1rem;
grid-template-columns: 1fr;
grid-template-rows: auto auto auto;
grid-gap: 5px;
box-sizing: border-box;
height: 200px;
background-color: #8cffa0;
}
#top-content {
grid-area: header;
display: flex;
align-items: center;
justify-content: center;
border-top: 3px solid #425c62;
}
#asdfasdf {
display: none;
}
ul.nav-menu {
margin: 0;
}
ul.nav-menu>li {
display: inline-block;
padding: 0 10px 0 10px;
margin: 0;
line-height: 70px;
border-top: 1px solid #83B2FF;
}
ul.nav-menu>li:hover {
background-color: #2779BF;
border-top: 1px solid #425c62;
}
}<body>
<div id="container">
<div id="top-content" class="palette-1">
<div id="testtest">
<img src="https://www.logolynx.com/images/logolynx/1f/1fa1c2a2ea0d69a85215d878f3a0652a.jpeg" width="100px" height="45px" />
</div>
<ul id="iconmenu" class="nav-menu">
<li class="title">Coffee</li>
<li class="title">Tea</li>
<li class="title">Milk</li>
</ul>
</div>
<div id="content" class="palette-2">
content
<br /> content
<br /> content
<br /> content
<br /> content
<br /> content
<br /> content
<br /> content
<br /> content
<br /> content
<br /> content
<br /> content
<br /> content
<br /> content
<br /> content
<br /> content
<br /> content
<br /> content
<br /> content
<br /> content
<br /> content
<br /> content
<br /> content
<br /> content
<br /> content
<br /> content
<br /> content
<br /> content
<br /> content
<br /> content
<br /> content
<br /> <br /> content
<br /> content
<br /> content
<br /> content
<br /> content
<br /> content
<br /> content
<br /> content
<br /> content
<br /> content
<br /> content
<br /> content
<br /> content
<br /> content
<br /> content
<br /> <br /> content
<br /> content
<br /> content
<br /> content
<br /> content
<br /> content
<br /> content
<br /> content
<br /> content
<br /> content
<br /> content
<br /> content
<br /> content
<br /> content
<br /> content
<br /> content
<br /> content
<br /> content
<br /> content
<br /> content
<br /> content
<br /> content
<br /> content
<br /> content
<br /> content
<br /> content
<br /> content
<br /> content
<br /> content
<br /> content
<br /> content
<br /> content
<br /> content
<br /> content
<br /> content
<br /> content
<br /> content
<br /> content
<br /> content
<br /> content
<br /> content
<br /> content
<br /> content
<br /> content
<br /> content
<br /> content
<br /> content
<br /> content
<br /> content
<br /> content
<br /> content
<br /> content
<br /> content
<br /> content
<br /> content
<br /> content
<br /> content
<br /> content
<br /> content
<br /> content
<br /> content
<br /> content
<br /> content
<br /> content
<br /> content
</div>
<div id="footer" class="palette-4">
footer
</div>
</div>
</body>
发布于 2022-09-24 12:20:11
菜单仍然存在,但是由于您正在从JS中设置display: block;,但是在这种情况下,您的设计系统可以使用display: flex;,您的标题不显示菜单内联,当它变成block时,它将将菜单包装在徽标下面。由于您有height: 50px和overflow: hidden,所以溢出项下隐藏着它们。
https://stackoverflow.com/questions/73835873
复制相似问题