Я пытаюсь заставить меню гамбургера открывать div при нажатии, а также закрывать при нажатии во второй раз, когда гамбургер находится в состоянии (X).
Я добавил код, который позволяет пользователю закрывать гамбургер также, когда он щелкает за пределами открывающегося элемента div. Однако stopPropagation
останавливает двойной щелчок по гамбургеру, и я верю
else {
$(".NavMenu").hide();
}
Не обнаруживается.
Есть ли более простой способ сделать это или решение, чтобы заставить его работать без stopPropagation
?
$('#burger').click(function(event) {
event.stopPropagation();
if ($(this).is(':checked')) {
$(".NavMenu").show();
} else {
$(".NavMenu").hide();
}
});
$('body').click(function() {
if ($('#burger').is(':checked')) {
$(".NavMenu").hide();
$("#burger").prop("checked", false);
}
})
$('.NavMenu').click(function(event) {
event.stopPropagation();
})
.mobileMenu {
display: block;
width: 30px;
height: 70px;
float: left;
}
.NavMenu {
display: none;
position: absolute;
width: 100%;
height: 50px;
top: 70px;
background-color: #FFF;
margin-left: -15px;
padding: 15px;
border-bottom: 1px solid #CCC;
}
input+label {
position: fixed;
top: 26px;
left: 30px;
height: 20px;
width: 15px;
z-index: 5;
}
input+label span {
position: absolute;
width: 100%;
height: 2px;
top: 50%;
margin-top: -1px;
left: 0;
display: block;
background: #020304;
transition: .5s;
}
input+label span:first-child {
top: 3px;
}
input+label span:last-child {
top: 16px;
}
label:hover {
cursor: pointer;
}
input:checked+label span {
opacity: 0;
top: 50%;
}
input:checked+label span:first-child {
opacity: 1;
transform: rotate(405deg);
}
input:checked+label span:last-child {
opacity: 1;
transform: rotate(-405deg);
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input id="burger" type="checkbox" style="display:none;" />
<label for="burger">
<span></span>
<span></span>
<span></span>
</label>
<div class="NavMenu">
<a href="https://google.com" target="_blank">Check accessibility</a>
</div>
<div style="margin-top:70px;height: 500px; background-color:#F00;">
</div>
<input id="burger" type="checkbox" style="display:none;"/>
- person   schedule 31.08.2017