1

我在页面上有 3 个锚点。我想突出显示根据哪个锚点最靠近视口中间而固定的按钮列表。

我该怎么做?

我已经在使用 InView 和 ViewportOffset 插件了。

4

1 回答 1

0

所以如果你没有视口的坐标,那么,你可以得到中间:

x = (viewport.x2 - viewport.x1) / 2;
y = (viewport.y2 - viewport.y1) / 2;

现在您可以执行以下操作:

var distances = [];
var elems = $("a");
elems.each(function(i){
    var o = $(this).offset();
    var d2 = (o.left - x)*(o.left - x) + (o.top - y)*(o.top - y);
    distances[i] = d2
});

现在你有了数组中距离的“平方”,你需要搜索最小的(最靠近中间的):

var closest = 0;
for (i=0; i<distances.length;i++) {
    if (distances[i] < distances[closest]) {
         closest = i;
    }
}

现在你有了“closest”中最近元素的索引,所以你可以用它做任何事情,比如:

elems[i].addClass("higlighted");
于 2012-06-07T18:56:48.563 回答