6

1 つの div を使用して CSS で高さを設定しtop:-26px;ます。そのdivに合わせたい他の場所に他のdivがあります。jquery の書き込み.css('top')で、div の y 座標ではなく、css が取得されることに気付きました。javascriptを使用して絶対x、y位置を取得するにはどうすればよいですか?

4

7 に答える 7

17

私はあなたにバニラの解決策を提供します..文句を言わないで..あなたの要素に[0]を追加すれば修正されます! :P これがお役に立てば幸いです。

function getOffset( el ) {
    var _x = 0;
    var _y = 0;
    while( el && !isNaN( el.offsetLeft ) && !isNaN( el.offsetTop ) ) {
        _x += el.offsetLeft - el.scrollLeft;
        _y += el.offsetTop - el.scrollTop;
        el = el.offsetParent;
    }
    return { top: _y, left: _x };
}
var x = getOffset( document.getElementById('yourElId') ).left; 
于 2012-05-12T14:49:59.750 に答える
12

使用できますjQuery(element).offset().top

それが役に立てば幸い。

于 2012-05-12T14:42:42.140 に答える
3

このコードを試してください:

function getElementPosition(id) {
    var offsetTrail = document.getElementById(id);
    var offsetLeft = 0;
    var offsetTop = 0;
    while (offsetTrail) {
        offsetLeft += offsetTrail.offsetLeft;
        offsetTop += offsetTrail.offsetTop;
        offsetTrail = offsetTrail.offsetParent;
    }

    return {
        left: offsetLeft,
        top: offsetTop
    };
}​

lefttop変数を持つオブジェクトを返します。

JQuery を使用する場合は、次のoffset()メソッドを試してください。

var pos = $("#element").offset();
console.log(pos.left)
console.log(pos.top)
于 2012-05-12T14:49:07.460 に答える
0

jQuery(要素).offset()を使用

それが役に立てば幸い。

例えば

var elementPosition = jQuery(element).offset();
var elementTopPositon = elementPosition.top;
于 2014-06-28T11:02:19.660 に答える
0

標準の JavaScript の場合:

var elem=document.getElementById("elemID");
var top=elem.offsetTop;
var left=elem.offsetLeft;

jQuery の場合:

var top=$("#elemID").offset().top;
var left=$("#elemID").offset().left;
于 2012-05-12T14:44:30.427 に答える