Ich versuche, eine feste Position Header zu erstellen, der angezeigt wird, sobald der Benutzer durch die Seite scrollt. Ich benutze JQuery (auf einer Seite, die auch Angular verwendet) und wollte fadeIn, sobald der scrollTop> 250px ist und sofort verschwindet (ich habe display: none verwendet), sobald es < 250px ist.JQuery Scrolling und einige nicht so verdeckte Überschriften
Beim Scrollen meines Code funktioniert langsam aber beim Scrollen nach oben und unten die h1 bei der Geschwindigkeit, die erscheint wieder über das 250px Zeichen versteckt werden soll: https://jsfiddle.net/gilestaylor/jpaqbm36/
Kann jemand ein Update empfehlen? Oder eine klügere Art, dies zu tun? (Ich lerne immer noch die Seile so irgendwelche Tipps zu schätzen!)
HTML
<header>
<h1>Order some food</h1>
</header>
<div id="bar">
<h1>Order some food</h1>
</div>
JS
$(function() {
$(window).scroll(function() {
if ($(window).scrollTop() > 250) {
$('#bar').css({
'height': '50px'
});
$('#bar h1').fadeIn(1000);
}
else {
$('#bar').css({
'height': '0'
});
$('#bar h1').css({'display': 'none'});
};
});
});
@ Mohamed-Yousef - Guter Punkt, aber jetzt, dass ich es sehe wieder, ich denke, es sollte eine Prüfung sein, damit der Code nicht ausgefuehrt wird, es sei denn, es von oben wechselt und unter dem 250 Punkt. –
aber ohne .stop() vor fadeIn() ist es immer noch nach animate .. es funktioniert gut für mich https://jsfiddle.net/jpaqbm36/6/ –
@ Mohamed-Yousef - Wie das Fenster wird gescrollt, nachdem es ist Nach dem 250 Punkt wird '.stop(). fadeIn()' immer wieder aufgerufen. Es tut wirklich nichts, da das Element bereits vollständig angezeigt wird, aber es scheint falsch, es weiterhin aufzurufen. –