I have the code below creating the effect of fadein and fadeout with the animate.css library in a scroll event, but when the event occurs applying fadeOut, it reappears until it scrolls, and the other error is that while the scroll is less than 28, it keeps doing and repeating the FadeIn effect, and I want fadeIn to occur only if FadeOut has already been done!
window.addEventListener('scroll', function(event){
var animacao1 = "animated fadeOutUp";
var animacao2 = "animated fadeInDown";
var fimanimacao = "webkitAnimationEnd mozAnimationEnd MSAnimationEnd oanimationend animationend";
if (window.scrollY > 50) {
$("#cabecalho .logo").addClass(animacao1);
}
if (window.scrollY < 50) {
$("#cabecalho .logo").removeClass(animacao1);
$("#cabecalho .logo").addClass(animacao2).one(fimanimacao, function(){
$(this).removeClass(animacao2);
});
}
});
#cabecalho {
height: 270px;
width: 100%;
background-color: rgba(0, 0, 0, .0);
position: absolute;
left: 50%;
top: 180px;
transform: translate(-50%, -50%);
}
#cabecalho .logo {
height: 37px;
width: auto;
position: absolute;
left: 40%;
top: 10%
}
#altura{
height: 1400px;
}
<link href="https://cdnjs.cloudflare.com/ajax/libs/animate.css/3.5.2/animate.min.css" rel="stylesheet"/>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script><divid="cabecalho">
<img class="logo" alt="Nome" src="https://upload.wikimedia.org/wikipedia/commons/4/41/SEGA_logo.png"></div><divid="altura"></div>