为什么我的移动网站菜单不起作用?我的代码中哪些内容无效?



我是新来的,希望有人能帮帮我。

我一周前开始学习编程,我开始通过创建一个网站来练习。

一切都很好,直到移动响应部分出现。

我无法让移动菜单与JS一起工作。

我已经尝试了很多不同的东西。我也试过jQuery,但没有效果。

我觉得自己很笨,希望能得到帮助。

非常感谢!

(对不起,如果我的英语不好;我还在学习)

const btn_mobile = document.getElementsByClassName('.hamburger');
const menu = document.getElementsByClassName('.menu');
btn_mobile.addEventListener('click', function () {

menu.classList.toggle('.active');
})
/*Base Style*/

body{font-family: 'Inter', sans-serif; font-size: 16px;}
a{
text-decoration: none;
}
h1, h2, h3, h4, h5, p{
color: white; padding-bottom: 30px;
}

.big-text{font-size: 70px; font-weight: 900;}
.med-text{font-size: 40px;}
.normal-text{font-size: 20px;}
.small-text{font-size: 14px;}
.intro-text{text-transform: uppercase; font-size: 20px; font-weight: bold;}

.button{
padding: 15px 17px;
background: rgb(85, 85, 226);
color: white;
display:inline-block;
border-radius: 4px;
text-align: center;

}
@media  (max-width: 768px){
.big-text{font-size: 40px;}
}




/*HEADER*/

.header{

width: 100%;
position: absolute;
top: 0;
padding: 15px;
display: flex;
max-width: 1350px;
left: 50%;
transform: translateX(-50%);


}
.logo{

}


.hamburger{display: none; }
.menu{
width: 100%;



}
/*align-items aggiusta verticale
jusify-content aggiusta orizontale
*/
.menu li{
display: inline-block;

}
.menu li a{
padding: 10px 20px;
color: white;
display: block;


}


.cta{
display: flex;
align-items: center;
}

@media screen and  (max-width: 768px){


.cta{display: none;}
.header{
background: black;

}
.hamburger{
display: block;
height: 30px;
width: 30px;
position: absolute;
top: 40px;
right: 30px;
cursor: pointer;
}
.hamburger span{ 
background: white;
height: 3px;
width: 100%;
display: block;
margin-bottom: 5px;
}

.menu{ display: flex;
padding-top: 30px;
top: 0;
right: 100%;
position: absolute;
background: black;
height: 100vh;
width: 100%;
align-items: center;
justify-content: center;
flex-direction: column;



}
.menu li { 
display: flex;

background-color: red;
height: 40px;
width: 140px;
margin: 20px;
text-align: center;
align-items: center;
justify-content: center;
border-radius: 20px;

}
.menu.active{
right: 0%;
}


.logo{
width: 100px;
height: 100px;
}
.logo img{
width: 100%;
height: auto;
}    


}

/*! Hero section */
.hero{
background: url(bg-test.jpg) no-repeat center center;
background-size: cover;
height: 100vh;
display: flex; width: 100%; align-items: center;

}
.hero__content{

width: 100%;
max-width: 1350px;
margin: 0 auto;
padding: 30px;

}


@media  (max-width: 768px){
}









*,
*:before,
*:after{
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;

}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Praise Amogus</title>

</head>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/meyer-reset/2.0/reset.min.css" integrity="sha512-NmLkDIU1C/C88wi324HBc+S2kLhi08PN5GDeUVVVC/BVt/9Izdsc9SVeVfA1UZbY3sHUlDSyRXhCzHfr6hmPPw==" crossorigin="anonymous" referrerpolicy="no-referrer" />
<link rel="stylesheet" href="style.css">
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;700;900&display=swap" rel="stylesheet">
<body>

<div class="header">
<div class="logo">
<img src="logo3.png" alt="">
</div>

<ul class="menu">
<li><a href="" class="link">Home</a></li>
<li><a href="" class="link">Contact</a></li>
<li><a href="" class="link">About us</a></li>
</ul>


<div class= "cta">
<a href="" class= "button">Button</a>
</div>
</div>


<div class="hamburger">
<span></span>
<span></span>
<span></span>
</div>
</div>
<!--hero e contenuti-->
<div class="hero">
<div class="hero__content">
<p class="intro-text">Testo Introduttivo</p>
<h1 class="big-text">Titolo</h1>
<a href="" class="button">Button 2</a>
</div>
</div>






<script>src = script.js </script>
</body>
</html>

getElementsByClassName函数返回一个数组。您应该添加[0]来获得元素。

你也有错误添加脚本到您的页面。下面是正确的变体:

<script type="text/javascript" src="path-to-javascript-file.js"></script>

最新更新