Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/431.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 返回当前处于视图中的集合的元素_Javascript_Jquery_Html - Fatal编程技术网

Javascript 返回当前处于视图中的集合的元素

Javascript 返回当前处于视图中的集合的元素,javascript,jquery,html,Javascript,Jquery,Html,我有一些元素,并检测它们是否当前都在视口中。我用这个答案来回答: 函数是crolledintoview(elem) { 变量$elem=$(elem); 变量$window=$(window); var docViewTop=$window.scrollTop(); var docViewBottom=docViewTop+$window.height(); var elemTop=$elem.offset().top; var elemBottom=elemTop+$elem.height()

我有一些元素,并检测它们是否当前都在视口中。我用这个答案来回答:

函数是crolledintoview(elem)
{
变量$elem=$(elem);
变量$window=$(window);
var docViewTop=$window.scrollTop();
var docViewBottom=docViewTop+$window.height();
var elemTop=$elem.offset().top;
var elemBottom=elemTop+$elem.height();
返回((elemBottom=docViewTop));
}
我现在遇到的问题是,由于我使用的是一个元素集合,因为有两个元素具有相同的类
.box
,我如何调整代码段以实际返回集合中当前可见的元素

谢谢

编辑:

我试图回来
[((elemBottom=docViewTop)),$(elem,this)]
这对你有帮助吗

$(“.box”)。每个(函数(索引){
//对于要获取的每个元素,如果在视口中,则为布尔值
如果(IsCrolledinToView(本)){
//做点什么
}
});
函数IsCrolledinToView(elem)
{
变量$elem=$(elem);
变量$window=$(window);
var docViewTop=$window.scrollTop();
var docViewBottom=docViewTop+$window.height();
var elemTop=$elem.offset().top;
var elemBottom=elemTop+$elem.height();
返回((elemBottom=docViewTop));
}

会对您有所帮助。函数
IsCrolledinToView()
应该返回一个布尔值。return语句返回的数组的第二个值等于
$(elem,this)
。第二个值指的是什么?我认为这可能是你问题的最佳答案只是你需要用answer@Jai中给出的函数检查那些元素,他说他有两个相同类名的项目
.box
,即使使用
元素也无法解决问题。getBoundingClientRect()
@超大化如何调用此函数(使用循环jQuery.each()…)?为
.box
项分配两个不同的ID有什么问题?这就是背后的想法+1.
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));
}