Ich habe ein Dropdown-Menü mit einem Anmelde-/Registrierungsformular, aber wenn ich versuche, auf den Formularinhalt zu klicken, wird das Menü geschlossen.Dropdown-Menü schließt, wenn ich darauf klicke (überall)
Ich habe versucht, etwas mit Javascript zu tun, dass es nur schließt, wenn ich auf den "X" -Button klicke, aber ich war nicht erfolgreich. Hier ist der Code:
with the hamburguer menu closed
function animaIcon(x){
\t x.classList.toggle("change");
}
function myFunction() {
\t document.getElementById("myDropdown").classList.toggle("show");
}
$('.container').on('click', function() {
\t if ($('.dropdown-content').css('opacity')==0) $('.dropdown-content').css('opacity', 0.95);
\t else $('.dropdown-content').css('opacity', 0);
});
/* HAMBURGUER MENU */
.icone-menu {
\t width: 100%;
\t float: right;
\t padding: 18px 8%;
}
.container {
\t display: block;
\t cursor: pointer;
\t float: right;
\t position: relative;
}
.dropdown-content {
\t display: none;
\t background-color: #111;
\t width: 100vw;
\t height: 100vh;
\t margin-top: -55px;
\t margin-left: -310px;
\t position: absolute;
\t opacity: 0;
\t -webkit-transition: all 1s ease-in-out;
}
.dropdown-content a {
\t font-weight: bold;
\t font-size: 150%;
\t color: white;
\t padding: 100px 18px;
\t display: block;
\t float: left;
}
.down-botao a {
\t color: #11E77C;
\t font-weight: bold;
}
.dropdown-content button {
\t padding: 10px;
\t width: 40%;
\t margin-left: 15px;
\t font-weight: bolder;
\t border-radius: 15px;
\t background-color: black;
\t border-style: solid;
\t border-color: #dd3910;
\t color: white;
}
.modal {
\t background-color: #fff;
\t width: 400px;
\t padding: 30px;
\t position: fixed;
\t top: 50%;
\t left: 50%;
\t transform: translateX(-50%) translateY(-50%);
\t min-height: 420px;
}
.tab {
\t float: left;
&:first-of-type {
margin-right: 15px;
}
}
.dropdown-content a:hover {
\t color: #13c7ae;
}
.show {
\t display: block;
}
.bar1, .bar2, .bar3 {
\t width: 35px;
\t height: 5px;
\t background-color: white;
\t margin: 6px auto;
\t transition: 0.4s;
\t position: relative;
\t z-index: 1000
}
.change .bar1 {
\t -webkit-transform: rotate(-45deg) translate(-9px, 6px);
\t transform: rotate(-45deg) translate(-9px, 6px);
}
.change .bar2 {
\t opacity: 0;
}
.change .bar3 {
\t -webkit-transform: rotate(45deg) translate(-8px, -8px);
\t transform: rotate(45deg) translate(-8px, -8px);
}
<nav class="icone-menu">
<a href="index.html"><img src="img/logo.png" alt="crossagenda" class="logo-mobile"></a>
<div class="container" onclick="animaIcon(this), myFunction(this)">
<div class="bar1"></div>
<div class="bar2"></div>
<div class="bar3"></div>
<div id="myDropdown" class="dropdown-content">
<ul>
<li><a href="#">Home</a></li>
<li><a href="#">What</a></li>
<li class="down-botao"><a href="#">Download</a></li>
</ul>
<div class="modal">
<div class="tab">
<input type="radio" id="sign-in" name="options" class="option" checked/>
<label for="sign-in">Sign in</label>
<form action="#" class="form">
<p class="float-label">
<label for="username">Username</label>
<input type="text" id="username" name="username" placeholder="Username"/>
</p>
<p class="float-label">
<label for="password">Password</label>
<input type="password" id="password" name="password" placeholder="Password"/>
</p>
<p>
<input type="submit" value="Sign me in"/>
</p>
<div class="forgot"> <a href="#">Forgot your password?</a> </div>
</form>
</div>
<div class="tab">
<input type="radio" id="sign-up" name="options" class="option"/>
<label for="sign-up">Sign up</label>
<form action="#" class="form">
<p class="float-label">
<label for="email">Email</label>
<input type="email" id="email" name="email" placeholder="Email"/>
</p>
<p class="float-label">
<label for="password">Password</label>
<input type="password" id="password" name="password" placeholder="Password"/>
</p>
<p class="float-label">
<label for="confirm-password">Confirm password</label>
<input type="password" id="confirm-password" name="confirm-password" placeholder="Confirm password"/>
</p>
<p class="toggle">
<label for="accept">
<input type="checkbox" id="accept" name="accept"/>
I accept the <a href="#">Terms & Services</a></label>
</p>
<p>
<input type="submit" value="Sign me up"/>
</p>
</form>
</div>
</div>
</div>
</div>
Bis Sie mit beiden vertraut sind, versuchen Sie nur jQuery oder JavaScript verwenden. Es ist einfach, jQuery und einfache Objekte zu mischen und sie zu verwirren. Ich bin mir nicht sicher, ob du das schon hast oder nicht, ich schaue nur flüchtig. Wenn Sie mehrere Zustände aus mehr als zwei Klassen haben, schlage ich vor, dass Sie 'add/remove' Methoden anstelle von' toggle' verwenden. – zer00ne