// Schließen Button Hauptnavigation
$('button#collapse-button').click(function() {
$('nav#main-nav').toggleClass('closed');
});
$(window).on('scroll', function() {
if ($(window).scrollTop() >= 500) {
$('nav#main-nav').addClass('closed');
}
})
#header{
height:500px;
width:100%;
background-color:darkslateblue;
}
#content{
background:#ccc;
height:900px;
width:100%;
}
#main-nav{
width:200px;
height:300px;
background: #fff;
display:inline-block;
position:fixed;
left:0;
top:50px;
transition:all 400ms ease;
}
.closed{
left:-200px !important;
}
#collapse-button{
float:right;
width:20px;
background:yellow;
}
.closed button{
margin-right:-20px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="header">
header
<br><br>
<nav id="main-nav">
<button id="collapse-button">X</button>
</nav>
</div>
<div id="content">
content
</div>
Kann das Klickverhalten über dem Scroll-Verhalten liegen? Das heißt, wenn Sie geöffnet haben oder manuell geschlossen, indem Sie auf, dass die Navigations Scrollen nicht mehr betroffen ..
sry für schlechtes Englisch
Sie können eine boolesche Variable erstellen und sie auf false setzen, wenn Sie auf die Schaltfläche klicken. Dann können Sie in Ihrer Scroll-Funktion prüfen, ob dieser Boolesche Wert falsch ist, und wenn dies der Fall ist, führen Sie die Funktion nicht aus - https://jsfiddle.net/95g81nr6/ – Zentryn