2013-03-29 19 views
5

要素がhtmlページに表示されているかどうかを確認する方法はありますか?このようhtmlページで要素がユーザーに表示されているかどうかをテストします。

enter image description here

一つは、おそらくそれは、垂直/水平スクロール位置、ブラウザウィンドウの幅/高さとページ上の要素の位置/サイズを考慮しないことができますが、私はjQueryの経験がほとんどないので、それをどうやって行うのか分かりません。そして、私が呼ぶことができる単純な機能があるかもしれない、私は知らない。

+0

可能複製(http://stackoverflow.com/questions/8229291/how-to-check-if-an-element [要素は、jQueryを使ってユーザーのビューにあるかどうかを確認する方法] jqueryを使用しているユーザに表示されます) – BenM

+2

http://stackoverflow.com/questions/8229291/how-to-check-if-an-element-is-in-the- jqueryを使用したユーザーの表示。しかし、うまくポーズされた質問。 – nickhar

答えて

5

セレクタを使用して、要素が現在DOMに表示されているかどうかを確認できます。

編集:@BenMが述べたように、あなたのページの要素が実際にあなたのスクロール可能な範囲の外にある場合

しかし、これはチェックしません - あなたがそのような場合に使用することができます偉大な小さなプラグインは次のようになりますViewport Selectors for jQuery

+0

いいえ、できません。これは、画面上でユーザーが見える場合ではなく、DOMに物理的に表示されているかどうかを定義します。要素は表示可能ですが、スクロール範囲外です。 – BenM

+0

あなたはまったく正しい、謝罪、私は今編集します。 – lifetimes

0

これは私がこれを行うために使用するコードです。それは素晴らしい仕事をするためにテストされています。

function isVisible($obj) { 
    var top = $(window).scrollTop(); 
    var bottom = top + $(window).height(); 
    var objTop = $obj.offset().top; 
    var objBottom = objTop + $obj.height(); 

    if(objTop < bottom && objBottom > top) { 
     //some part of $obj is visible on the screen. 
     //does not consider left/right, only vertical. 
    } 
} 
関連する問題