形势占据更多的空间股利 -如何选择,在视口中
我有块元素div(s)
在我的文档的数量。它们中的每一个都相对对齐。
我想选择一个占据更多的视口空间比滚动上的兄弟块。
查看图像 -
我tried-
$(window).scroll(function(){
$('.container div').each(function(){
if(isVisible($(this), $(window))){
console.log($(this).attr('class')+" is visible");
};
});
});
计算offset
function isVisible(block, container){
var elementTop = $(block).offset().top,
elementHeight = $(block).height(),
containerTop = container.scrollTop(),
containerHeight = container.height();
return ((((elementTop - containerTop) + elementHeight) > 0) && ((elementTop - containerTop) < containerHeight));
}
现在,如果你在控制台注意,我是显示b锁在屏幕上可见。现在当两个或更多块在屏幕上可见时,只有在视口中占用更多空间的块。
当前,它正在选择两个块。我不知道现在如何处理它。
这里您可以找到fiddle- https://jsfiddle.net/13odrk4t/
最可见=?请提供**固体**定义。 – Sharky 2015-04-03 12:02:55
获得屏幕X的可见部分,Y到X + visible_width,Y + visible_height遍历所有可见元素找到它们的X,Y和X +宽度,Y +高度区域,并计算与屏幕可见部分重叠的区域视口)。如果可见元素彼此重叠,则对每个元素进行相同的检查,并且如果它具有比其他重叠元素低的z-索引则取消重叠区域。现在有人可以将其编码为我想的答案。当然这一切都必须在pagescroll或其他东西上计算。 – Sharky 2015-04-03 12:06:47
上图中绿色的块比下面的块更明显,我想选择那个绿色块。反之亦然紫色。 – Manoj 2015-04-03 12:06:49