0

基本上我有一个无序列表,每个列表元素里面都有一个 div,可以在该列表元素内左右滑动。所有这些都可以正常工作,但我希望能够比较 div 的 x 位置,以便如果任何两个在 x 轴上重叠,它们都会变成红色。

function checkForOverlap(){
  $("ul#jobs").each(function(){
        var   $this = $(this);
              job = $this.children(":first");
              sib = $this.siblings(":first").children(":first");
        console.log(job.width()+" "+job.css("left"));
        });
}

我的想法是,如果我能得到一个的左边,我可以将它加上它的宽度与其兄弟的左边进行比较。所有 job.css("left") 返回的是

auto

有没有办法获取 div 的 x 位置?有没有办法将所有 div x 坐标比较在一起,或者我应该将每个坐标与其兄弟姐妹进行比较(列表是可排序的,因此我可以移动所有元素并检查每个兄弟姐妹的每个元素)。

4

1 回答 1

1

我看到这个问题,因为有 x 位置吗?是的。它被称为 object.offsetLeft。但是,您必须小心,因为该偏移量的 x 值在其父级内。这意味着父级有一个偏移量,如果您将所有父级的偏移量相加,您将获得屏幕的 x 值或偏移量。

function checkForOverlap(){
  $("ul#jobs").each(function(v){
      v.offsetLeft //for the elements offest
      v.parent.offsetLeft // for the parent's offset
        });
}
于 2013-04-15T21:33:14.353 回答