1

私の目的は、ドロップダウンリストをセルに入れることです。

var obj = document.getElementById('dropdown');
var coords = { x: 0, y: 0 };
var element = this;
while (element)
{
 coords.x += element.offsetLeft;
 coords.y += element.offsetTop;
 element = element.offsetParent;
}
obj.style.left = coords.x+'px';
obj.style.top = coords.y+'px';

ただし、これでは正確な位置を見つけることができません。修正方法は?

4

1 に答える 1

1

このアプローチは完全に機能するはずですが、他の何かがポジショニングを台無しにしているのではないでしょうか?

style を持つ要素がある場合、position: relativestyle を持つその要素に追加される要素はposition: absolute、依然としてその要素に対して相対的です。オフセットを見て要素の位置を特定しようとすると (相対的に配置された要素を無視して)、正しい値が得られません。相対位置で最も近い共通要素を見つけ、その要素までのオフセットを取得する必要があります。

于 2012-04-21T16:00:42.727 に答える