【发布时间】:2021-06-09 00:41:36
【问题描述】:
我正在尝试使用 JS 和 css 为我的网站制作一个移动菜单,当我第一次点击按钮时它没有响应,但在随后的点击中它工作正常,而且第一个菜单也有一点延迟在随后的点击中消失。
这些可能是什么原因?
我试图控制台记录网页开头的“top”属性,但它给出了空白空间,然后频繁点击给出“-110%”或“60px”的值 html
const mobile = window.matchMedia("max-width: 768px;");
let menu = document.querySelector(".aside");
if (mobile.matches) {
document.querySelector(".scroll").addEventListener(onclick, toggleMenu());
}
function toggleMenu() {
if (menu.style.top == "-110%") {
menu.style.top = "60px";
} else {
menu.style.top = "-110%";
}
}
header {
height: 60px;
position: relative;
background-color: #fcf1ee;
z-index: 2;
}
.mobile-menu-button {
position: absolute;
top: 20px;
right: 20px;
display: inline-block;
width: 40px;
height: 40px;
background: linear-gradient(to bottom right, #5cebb5 0%, #225139 84%);
border-radius: 5px;
border-color: #448d76;
cursor: pointer;
}
.aside {
width: 90%;
margin: 0 5%;
background: linear-gradient( to bottom right, rgba(68, 141, 118, 0.9) 0%, rgba(53, 121, 86, 0.9) 76%);
box-shadow: 10px 20px 50px rgba(0, 0, 0, 0.8);
border-radius: 7px;
position: absolute;
left: 0;
top: -110%;
transition: 1s;
z-index: 1;
}
<header>
<button class="mobile-menu-button scroll" onClick="toggleMenu()"><i class="fas fa-bars"></i>
</button>
</header>
<div class="aside">
<div class="avatar-container">
<div class="avatar"></div>
</div>
<nav>
<ul>
<li>
<a href="#" class="scroll" data-value="about">
About
</a>
</li>
<li>
<a href="#" class="scroll" data-value="resume">
Resume
</a>
</li>
<li>
<a href="#portfolio" class="scroll" data-value="portfolio">
Portfolio
</a>
</li>
<li>
<a href="#contact" class="scroll" data-value="contact">
Contact
</a>
</li>
</ul>
</nav>
</div>
【问题讨论】:
标签: javascript css