【问题标题】:Find closest BoundingClientRect查找最近的 BoundingClientRect
【发布时间】:2015-05-04 14:24:37
【问题描述】:

我有一个 ClientRect 对象数组,我通过这样做得到了

var trackedElements = $('[track]');
var trackedBounds = [];
_.each(trackedBounds, function(elem) {
    return $(elem)[0].getBoundingClientRect();
});

我还拥有另一个元素的边界客户端矩形。

var currentElement = $('.active')[0].getBoundingClientRect();

我的问题是,我如何在trackedBounds 内找到最靠近currentElement 的北方?

【问题讨论】:

    标签: javascript getboundingclientrect


    【解决方案1】:

    我认为您可以过滤不在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]
    

    【讨论】:

      猜你喜欢
      • 2011-01-16
      • 1970-01-01
      • 2022-01-09
      • 2020-11-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多