'Eventlistenerbutton unresponsive

I have created a login form button on my website. It is opening but the closing button is not working.

HTML:-



<!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>Welcome to Hotel</title>

    <!-- font cdn useful -->
    <link
      rel="stylesheet"
      href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0-beta3/css/all.min.css"
    />

    <!-- css file link -->
    <link rel="stylesheet" href="style.css" />
  </head>
  <body>
    <!-- hearder section -->
    <header>
      <a href="#"class="logo"><span>H<span>otel<a>
      <nav class="navbar">
          <a href="#home">home</a>
          <a href="#books">books</a>
          <a href="#packages">packages</a>
          <a href="#services">services</a>
          <a href="#gallery">gallery</a>
          <a href="#reviews">reviews</a>
          <a href="#contact">contact</a>
      </nav>
      

      <div class="icons">
          <i class="fas fa-search" id="search-btn"></i>

          <i class="fas fa-user" id="login-btn"></i>
      </div>

       <form action="" class="search-bar-container">
           <input type="search" id="search-bar" placeholder="search here...">

           <label for="search-bar" class="fas fa-search" ></label>
       </form>
    </header>
    <!-- header endeing -->
    <!-- login form container -->
    <div class="login-form-container">
      <i class="fas fa-times" id="form-close"></i>
      <form action="">
        <h3>login</h3>
        <input type="email" class="box" placeholder="enter your email">
        <input type="password" class="box" placeholder="enter your password">
        <input type="submit" value="login" class="btn">
        <input type="checkbox" id="remember">
        <label for="remember">Remember me</label>
        <p>Forgot password? <a href="#">click here</a></p>
        <p>dont have a account? <a href="#">register here</a></p>
      </form>
    </div>



    <!-- js file link -->
    <script src="main.js"></script>
  </body>
</html>
    

css:

    

@import url('https://fonts.googleapis.com/css2?family=Nunito:wght@200;300;400;600;700&family=Ubuntu&display=swap');

:root{
    --orange:#ffa500;
}
*{
    font-family: 'Nunito', 'sans-serif';
    margin: 0;
    padding: 0;
    box-sizing: border-box;
    text-transform: capitalize;
    outline: none;
    border: none;
    text-decoration: none;
    transition: all 0.2s linear;
}

*::selection{
    background:var(--orange);
    color: #fff;
}

html{
    font-size: 62.5%;
    overflow-x: hidden;
    scroll-padding-top: 6rem;
    scroll-behavior: smooth;

}

.btn{
    display: inline-block;
    margin-top: 1rem;
    background:var(--orange);
    color: #fff;
    padding: .8rem 3rem;
    border: .2rem solid var(--orange);
    cursor: pointer;
    font-size: 1.7rem;

}

.btn:hover{
  background: rgba(255,165,0,.2);
  color: var(--orange);

}

header{
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    background: #333;
    z-index: 1000;
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 2rem 9%;

}

header  .logo{
    font-size: 2.5rem;
    font-weight: bolder;
    color: #fff;
    text-transform: uppercase;
}

header .logo span{
    color: var(--orange);
    
}

header .navbar a{
    color: #fff;
    font-size: 2rem;
    margin: .8rem;


}

header .navbar a:hover{
   color: var(--orange);
}

header .icons i{
    font-size: 2.5rem;
    color: #fff;
    cursor: pointer;
    margin-right: 2rem;

}

header .icons i:hover{
    color: var(--orange);

}

header .search-bar-container{
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    padding:1.5rem 2rem;
    background: #333;
    border-top: .1rem solid rgba(255,255,255,.2);
    display: flex;
    align-items: center;
    z-index: 1001;
     clip-path: polygon(0 0, 100% 0, 100% 0, 0 0); 

}

header .search-bar-container.active{

    clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%); 

}

header .search-bar-container #search-bar{
    width: 100%;
    padding: 1rem;
    text-transform: none;
    color: #333;
    font-size: 1.7rem;
    border-radius: 1rem;


}

header .search-bar-container label{
    color: #fff;
    cursor: pointer;
    font-size: 3rem;
    margin-left: 1.5rem;

}

header .search-bar-container label:hover{
    color: var(--orange);

}

.login-form-container{
    position: fixed;
    top: -120%;
    left: 0;
    z-index: 10000;
    min-height: 100vh;
    width: 100%;
    background: rgba(0,0,0,.7);
    display: flex;
    align-items: center;
    justify-content: center;


}

.login-form-container.active{
    top: 0;
}

.login-form-container form{

    margin: 2rem;
    padding: 1.5rem 2rem;
    border-radius: .5rem;
    background: #fff;
    width: 50rem;

}

.login-form-container form h3{
    font-size: 3rem;
    color: #444;
    text-transform: uppercase;
    text-align: center;
    padding: 1rem 0;

}

.login-form-container form .box{
    width: 100%;
    padding: 1rem;
    font-size: 1.7rem;
    color: #333;
    margin: .6rem 0;
    border: .1rem solid rgba(0,0,0,0.3);
    text-transform: none;
}

.login-form-container form .box:focus{
    border-color: var(--orange);

}

.login-form-container form #remember{
    margin: 2rem 0;
}

.login-form-container form label{
    font-size: 1.5rem;
}

.login-form-container form .btn{
    display: block;
    width: 100%;

}

.login-form-container form p{
    padding: .5rem 0;
    font-size: 1.5rem;
    color: #666;
}

.login-form-container form p a{
    color: var(--orange);
}

.login-form-container form p a:hover{
    color:#333;
    text-decoration: underline;
}

.login-form-container #form-close{
    position: absolute;
    top: 2rem;
    right: 3rem;
    font-size: 5rem;
    color: #fff;
    cursor: pointer;
}

JS(the problem)

  

  

let searchbtn = document.querySelector('#search-btn'); let searchbar = document.querySelector('.search-bar-container');

let formbtn = document.querySelector('#login-btn');
let loginForm = document.querySelector('.login-form-container');
let formclose = document.querySelector('.form-close');

window.onscroll = () =>{
    searchbtn.classList.remove('fa-times');
    searchbar.classList.remove('active');
}

searchbtn.addEventListener('click', () =>{
    searchbtn.classList.toggle('fa-times');
    searchbar.classList.toggle('active');
});

formbtn.addEventListener('click', () =>{
    loginForm.classList.add('active');
});

formclose.addEventListener('click', () =>{
    loginForm.classList.remove('active');
});


console reply:
[enter image description here][1]


  [1]: https://i.stack.imgur.com/vfdtp.png


Solution 1:[1]

You made a small typo in the javascript file.

let formclose = document.querySelector(".form-close");

Should be

let formclose = document.querySelector("#form-close");

Since the element has an id of form-close and not a class, you need to use the '#' instead of the '.'

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 Simon Leroux