3

長方形の xy 座標の取得に問題があります。

実際、私はすでにxy座標を取得していますが、正しくありません..私はビジュアルスタジオ2008を使用しました..nはjqueryを使用しています..ok、デザインは次のようになります:

私は「drg」というdiv名を持っていました..それは大きなボックスです..div(大きなボックス)の中に長方形の画像があります。四角形を div の左上端にドラッグしますが、結果は x=8、ny=8 です。論理的には、コードは div の外からカウントされます。これが、x=10 ny=10 を取得した理由です。

divの左上端までドラッグすると、結果はx = 0、y = 0..になる必要があります。

これは私のコードです:「im」は画像のIDです(赤いボックス)

$(document).ready(function() {
    // sets draggable the elements with id="im"
    $('#im').draggable({
        cursor: 'move',        // sets the cursor apperance
        containment: '#drg', 

        stop : function(){
            $("#value").text('x-axis :' + $('#im').offset().left + 'y-axis :' + $('#im').offset().top);

            var imgPosX = 10 - $("img#im").width();
            var imgPosY = 10 - $("img#im").height();

        }
    });
});

画像(赤いボックス)を左上にドラッグすると、x = 8、y = 8になります...青いボックスの外から数えます..青いボックスから数えたいn get x =画像(赤枠)の位置がそのような位置にある場合は 0,y=0 です。

4

1 に答える 1

3
stop: function(event, ui) {

        // Show dropped position.
        var Stoppos = $(this).position();
        var left = Math.abs(Stoppos.left);
        var top = Math.abs(Stoppos.top);
    }

drag()のようなイベント内でも作ることができます

   drag: function(){
        var offset = $(this).offset();
        var xPos = Math.abs(offset.left);
        var yPos = Math.abs(offset.top);
        $('#posX').text('x: ' + xPos);
        $('#posY').text('y: ' + yPos);
    }

上記の 2 つのイベントを含む完全なデモ

コメントによると

負の値が必要ないためMath.abs()、すべての値を正にするために使用します。

于 2012-06-13T02:03:39.873 に答える