あなたのセクションがある場合は、私が見つけるためにこれを使用しています「ビューポート」で確認することができます。
function isTotallyInViewPort($entry){
var windowScrollTop = $(window).scrollTop();
var windowHeight = $(window).height();
var windowVisibleBottom = windowScrollTop + windowHeight;
var entryTop = $entry.offset().top;
var entryOuterHeight = $entry.outerHeight();
var entryVisibleBottom = entryTop + entryOuterHeight;
var isInView = windowScrollTop < (entryTop) < (windowVisibleBottom);
if(!isInView) return false;
var isCompleteInView = (entryVisibleBottom) < (windowVisibleBottom);
return isCompleteInView;
}
あなたは部品が示されている場合だけかどうかを確認する関数を作成し、検出したい場合現在のビューがセクションの位置と重なっています。
あなたは$(ウィンドウ).on( "スクロール")
編集にそれを結合することができる:私はあなたの要素は(まだテストしていない)に示されている場合、これは検出されるべきだと思う
function isPartlyInViewPort($entry){
var windowScrollTop = $(window).scrollTop();
var windowHeight = $(window).height();
var windowVisibleBottom = windowScrollTop + windowHeight;
var entryTop = $entry.offset().top;
var entryOuterHeight = $entry.outerHeight();
var entryVisibleBottom = entryTop + entryOuterHeight;
var isAboveViewPort = entryVisibleBottom < windowScrollTop;
var isBelowViewPort = windowVisibleBottom < entryTop;
return !(isAboveViewPort || isBelowViewPort);
}
この質問あなたを助けるかもしれません:http://stackoverflow.com/questions/2940006/what-is-scrolltop-and-scrollheight。スクロールの差別化を使用して、ページ上でユーザーがどこにいるかを調べることができます。良い質問ですが、コードを投稿して私たちを始めてください。 – George
スクロールオフセットを取得し、セクションのオフセットと比較します。 –
誰もが言ったように、スクロール位置を使用し、それをセクションのオフセットと比較することが、道のりです。これを実際に見てみると、ルックスルーはhttp://twitter.github.com/bootstrap/javascript.html(そしてそれがナビゲーション状態をどのように扱うか)のブートストラップで見ることができます。これは、「スクロールバー」として組み込まれています。この回答は、この回答からリンクされています。http://stackoverflow.com/questions/13134013/how-to-use-bootstrap-scroll-spy –