0

js を使用して Web サイトをレンダリングしていますが、レンダリング サイクルを最適化したいと考えています。

ページ要素がユーザーに表示されるときにイベントを取得する方法はありますか?

このようにして、要素が表示されるまで要素のレンダリングを遅らせますか?

4

3 に答える 3

1
 var viewportWidth = jQuery(window).width(),
 viewportHeight = jQuery(window).height(),
 documentScrollTop = jQuery(document).scrollTop(),
 documentScrollLeft = jQuery(document).scrollLeft(),
 minTop = documentScrollTop,
 maxTop = documentScrollTop + viewportHeight,
 minLeft = documentScrollLeft,
 maxLeft = documentScrollLeft + viewportWidth,
 $myElement = jQuery(element), // your element jquery object
 elementOffset = $myElement.offset();
 if (
 (elementOffset.top > minTop && elementOffset.top < maxTop) &&
 (elementOffset.left > minLeft &&elementOffset.left < maxLeft)
  ) {
  alert('element is visible');
  } else {
  alert('element is not visible');
  }
于 2013-03-02T19:50:24.810 に答える
1

使用している特定のライブラリ/フレームワークがあるかどうか、または要素を表示するための特定の条件があるかどうかを説明していないため、これを提供します。

jQuery $(document).ready() は、ページ全体がロードされているかどうかを検出できます。

一方、要素がdisplay:noneまたはvisibility:hidden、またはその両方である場合、jQueryを次のように使用できます:$('element').is(':visible')を条件として使用し、声明。

于 2013-03-02T22:14:04.033 に答える