2016-05-10 6 views

答えて

2

使用すると、このイベントを使用して、あなたの要素の上に位置を固定し、スクロールが停止したとき。 stop()メソッドは、現在実行中のアニメーションを停止します。

Fiddle

1

jQueryのは、あなたの行動

<div> 
    <div class="fade"> 
     Scroll down i will become invisible 
    </div> 
</div> 

$(window).scroll(function() { 
    clearTimeout($.data(this, 'scrollTimer')); 
     $('.fade').show(); 

    $.data(this, 'scrollTimer', setTimeout(function() { 
     // do something 
     $('.fade').hide(); 
    }, 250)); 
}); 

http://jsfiddle.net/onqn2gjj/896/

+0

[scrollStop(http://www.w3schools.com/jquerymobile/event_scrollstop.asp) –

+0

jQueryのモバイル? – fdfey

+0

はい、あなたは正しい...私の間違いです。 –

1

私の提案を行うためのsetTimeoutを使用できるように、イベント「scrollStop」を持っていけない、スクロールがすぐに実行されたときに要素を表示するために、1つの機能を使用することですその後一定時間それを隠すことができます。もう一度スクロールすると、基本的には基本的にタイマーを少し前に「プッシュ」します。これは基本的にはあなたが聞いたかもしれないデバウンシングの概念です。したがって、私の解決策は次のようになります。その後、スクロール、それをフェードアウトしながら、これは、要素が表示されます

$(window).scroll(function() { 
    $(element).stop(true, true).show().fadeOut('fast'); 
}); 

var hideTimeout = null; 

var show = function() { 
    $('#theone').show(); 
} 

var hide = function() { 
    $('#theone').hide(); 
} 

$(document).ready(function(){ 

    $(window).scroll(function(e){ 
    if (hideTimeout) { 
     window.clearTimeout(hideTimeout); 
     hideTimeout = null; 
    } 
    show(); 

    window.setTimeout(hide, 500); 
    }); 

}); 

https://jsfiddle.net/386bstgh/1/

関連する問題