4

: これはに関する質問ではありませんdisplay:none;


set であるさまざまなコンテナーにさまざまな要素がありますoverflow:auto;。特定の要素がブラウザに表示されているかどうかをテストしたいと思います。

精度 :

  • 私は(「I don't care if」を読んで)絶対的な要素が上に浮かんでいないと仮定します
  • コンテナは絶対的かもしれません
  • 要素が部分的に見える可能性があります

この関数は、window(またはスクロール可能な) スクロール イベントで呼び出され、要素がビューポートで消えたり再表示されたりするかどうかを確認し、観察された要素がスクロール可能な DIV 内にある可能性があります。

そのような検証を一般化するには、これはあまりにも多くの作業ですか?

4

1 に答える 1

1

指定されたコンテナ内に要素が表示されている場合、これは true を返します。

function isVisable( element, container ){

  var elementTop = $(element).offset().top,
      elementHeight = $(element).height(),
      containerTop = $(container).offset().top,
      containerHeight = $(container).height();

  return ((((elementTop - containerTop) + elementHeight) > 0)
         && ((elementTop - containerTop) < containerHeight));
}

http://jsfiddle.net/MPuDW/

于 2013-04-12T05:55:56.720 に答える