我有一个div元素的父子结构(父结构是称为dartboard的div,子div称为rotatingDiv,然后有一个称为crosshair的孩子)。

dartboard
     > roatingDiv
            > crosshair


飞镖容器容纳一个旋转容器(rotaingDiv),然后该容器容纳一个子元素(十字线)。我想找到相对于飞镖容器的x和y位置。这是我目前所拥有的:

$('#dartboard').append( $('#rotatingDiv').append( $('#crosshair') ) );

        X = $('#crosshair').position().left.toFixed(1)
        Y = $('#crosshair').position().top.toFixed(1)

console.log("x is "+X+", y is "+Y);


此过程在每秒的计时器中运行,检查x和y值后,我注意到我只收到有关crosshair元素位于rotatingDiv内而不是在飞镖板级别(父级)的信息。的父母)。有人知道我该怎么做吗?

最佳答案

这应该工作:

var pos1 = $("#crosshair").position();
var pos2 = $("#crosshair").parent().position(); // or $('#rotatingDiv').position();

var x = (pos1.left + pos2.left ).toFixed(1);
var y = (pos1.top  + pos2.top  ).toFixed(1);


小心:


  注意:jQuery不支持获取的位置坐标
  隐藏的元素或说明设置的边框,边距或填充
  身体元素。


您可以检查API here

09-13 08:41