形勢佔據更多的空間股利 -如何選擇,在視口中
我有塊元素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