ユーザーがページのスクロールを開始すると表示される固定位置のヘッダーを生成しようとしています。私はJQuery(Angularを使っているページで)を使っていて、scrollTopが250pxを超えてすぐに消えるようにしたいと考えていました(display:noneを使っていました)。JQueryスクロールと隠れていない見出し
ゆっくりと私のコードの作品をスクロールするが、スピードでダウン250ピクセルマーク以上が再表示され隠されるべきH1までスクロールしたとき:https://jsfiddle.net/gilestaylor/jpaqbm36/
を誰もが修正をお勧めしますか?それともこれを行うよりスマートな方法? (任意のヒントを感謝ので、私はまだロープを学んでいる!)
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'});
};
});
});
- 良い点が、今、私は再びそれを見ていることを、私はコードが実行されませんので、それは上からスイッチングされていない限り、チェックがなければならないと思っていますし、 250ポイントを下回っている。 –
しかし、fadeIn()の前に.stop()がなくても、アニメート後もまだ表示されます。https://jsfiddle.net/jpaqbm36/6/ –
@ Mohamed-Yousef - ウィンドウがスクロールした後250点を過ぎると、 '.stop().fadeIn()'が繰り返し呼び出されます。要素が既に完全に表示されているので、実際には何もしませんが、それを続けておくのは間違っています。 –