返回当前正在查看的集合元素

时间:2016-02-24 12:52:19

标签: javascript jquery html

我有一些元素并检测它们中的每一个当前是否在视口中。我正在使用这个答案:Answer

function isScrolledIntoView(elem)
{
  var $elem = $(elem);
  var $window = $(window);

  var docViewTop = $window.scrollTop();
  var docViewBottom = docViewTop + $window.height();

  var elemTop = $elem.offset().top;
  var elemBottom = elemTop + $elem.height();

  return ((elemBottom <= docViewBottom) && (elemTop >= docViewTop));
}

我现在遇到的问题是因为我使用了一组元素因为有一对具有相同的类.box,所以如何调整片段以实际返回当前可见元素一个集合。

由于

编辑:

我试图回来 [((elemBottom <= docViewBottom) && (elemTop >= docViewTop)), $(elem, this)]

1 个答案:

答案 0 :(得分:1)

这对你有帮助吗?

$( ".box" ).each(function( index ) {
  // for each element you are getting the boolean if is in viewport
  if(isScrolledIntoView(this)) {
     // do something
  }
});

function isScrolledIntoView(elem)
{
  var $elem = $(elem);
  var $window = $(window);

  var docViewTop = $window.scrollTop();
  var docViewBottom = docViewTop + $window.height();

  var elemTop = $elem.offset().top;
  var elemBottom = elemTop + $elem.height();

  return ((elemBottom <= docViewBottom) && (elemTop >= docViewTop));
}