我有一个ClientRect对象数组,我通过这样做了
var trackedElements = $('[track]');
var trackedBounds = [];
_.each(trackedBounds, function(elem) {
return $(elem)[0].getBoundingClientRect();
});
我还有另一个元素的边界客户端rect。
var currentElement = $('.active')[0].getBoundingClientRect();
我的问题是,如何在trackedBounds
最近的北currentElement
内找到?
答案 0 :(得分:0)
我认为你可以过滤不在currentElement
以北的作品:
trackedBounds = trackedBounds.filter(rect => rect.bottom > currentElement.top)
并对其.bottom
媒体资源的其余部分进行排序:
trackedBounds = trackedBounds.sort((rect1, rect2) => rect1.bottom - rect2.bottom)
结果是trackedBounds
数组的第一个元素:
let result = trackedBounds
.filter(rect => rect.bottom > currentElement.top)
.sort((rect1, rect2) => rect1.bottom - rect2.bottom)
[0]