2016-04-09 5 views
0
$(window).bind('scroll', function() { 
    if ($(this).scrollTop() > 520) { 
     $('.box').fadeIn(); 
    } else { 
     $('.box').stop().fadeOut(); 
    } 
}); 

をスクロールされた場合、私は少しをスクロールした後に■はフェードを行うコードのこのビットを持って、私はそれが唯一のページの先頭に戻るスクロールした後にフェードアウトしますことに気づきました。私はそれが(それに到達する前に)上にスクロールしながらそれが消えて欲しいです。それを行う方法はありますか?フェードアウト量は

答えて

1

あなたが本当に場合にのみ、その下に520ライン上からの位置の変更、またはその逆に一度、それを起動したいときは、scrollイベント火災は、毎回fadeInfadeOutを呼んでいます。また、私はstop()への呼び出しを取りましたが、ここでは不要です(問題がイベント衝突の場合は、scrollイベントハンドラでdebounceを使用することができます)。

$(window).bind('scroll', function() { 
    var belowLine, visible; 
    belowLine = $(this).scrollTop() > 520; 
    visible = $box.is(':visible'); 
    if (belowLine && !visible) { 
    $box.fadeIn(); 
    } 
    if (!belowLine && visible) { 
    $box.fadeOut(); 
    } 
}); 

私は自己文書化の目的でいくつかの変数を使用しました。

関連する問題