我一直试图将这个“汉堡”样式菜单添加到网站上,并且由于汉堡动画没有在点击中播放而卡住。
菜单在这里:https://codepen.io/designcouch/pen/hyFAD
我将“已编译的” SCSS代码放入css文件中,并将其链接起来,就像我想要其他任何css文件一样。
有人可以解释我在做什么错吗?先感谢您。
$('#menu-toggle').click(function(){
$(this).toggleClass('open');
})
* {
transition: 0.25s ease-in-out;
box-sizing: border-box;
}
body {
background: #d9e4ea;
}
span {
display: block;
background: #566973;
border-radius: 2px;
}
#menu-toggle {
width: 100px;
height: 100px;
margin: 50px auto;
position: relative;
position: relative;
cursor: pointer;
background: rgba(255, 255, 255, 0.4);
border-radius: 5px;
}
#menu-toggle:hover {
background: rgba(255, 255, 255, 0.8);
}
#menu-toggle #hamburger {
position: absolute;
height: 100%;
width: 100%;
}
#menu-toggle #hamburger span {
width: 60px;
height: 4px;
position: relative;
top: 24px;
left: 20px;
margin: 10px 0;
}
#menu-toggle #hamburger span:nth-child(1) {
transition-delay: 0.5s;
}
#menu-toggle #hamburger span:nth-child(2) {
transition-delay: 0.625s;
}
#menu-toggle #hamburger span:nth-child(3) {
transition-delay: 0.75s;
}
#menu-toggle #cross {
position: absolute;
height: 100%;
width: 100%;
transform: rotate(45deg);
}
#menu-toggle #cross span:nth-child(1) {
height: 0%;
width: 4px;
position: absolute;
top: 10%;
left: 48px;
transition-delay: 0s;
}
#menu-toggle #cross span:nth-child(2) {
width: 0%;
height: 4px;
position: absolute;
left: 10%;
top: 48px;
transition-delay: 0.25s;
}
#menu-toggle.open #hamburger span {
width: 0%;
}
#menu-toggle.open #hamburger span:nth-child(1) {
transition-delay: 0s;
}
#menu-toggle.open #hamburger span:nth-child(2) {
transition-delay: 0.125s;
}
#menu-toggle.open #hamburger span:nth-child(3) {
transition-delay: 0.25s;
}
#menu-toggle.open #cross span:nth-child(1) {
height: 80%;
transition-delay: 0.625s;
}
#menu-toggle.open #cross span:nth-child(2) {
width: 80%;
transition-delay: 0.375s;
}
<html>
<head>
<link rel="stylesheet" type="text/css" href="style.css">
</head>
<body>
<div id="menu-toggle">
<div id="hamburger">
<span></span>
<span></span>
<span></span>
</div>
<div id="cross">
<span></span>
<span></span>
</div>
</div>
<script src="button.js"></script>
</body>
</html>
答案 0 :(得分:-1)
您在这里所做的一切都正确。可能您正在使用的$对象需要调用一个库。
$('#menu-toggle').click(function(){
$(this).toggleClass('open');
})
您使用的语法实际上来自一个名为jQuery的库,该库基于JavaScript构建,并提供了实用程序来帮助我们编写更少,更好的代码。
为此,只需在Internet上搜索jQuery CDN。打开第一个链接并转到缩小的jQuery 3.x,将显示一个弹出窗口,然后复制脚本并将其放置在关闭body标签之前。
<html>
<head></head>
<body>
<!-- jQuery CDN -->
<script src="https://code.jquery.com/jquery-3.5.0.min.js" />
</body>
</html>
此外,如果您不愿意使用jQuery。这就是用本机JavaScript编写的方式。
document.getElementById("menu-toggle").addEventListener("click", function(){
if(this.classList[0] === 'open'){
this.classList.remove('open');
}
else {
this.classList.add('open');
}
});