3

我在获取矩形的 xy 坐标时遇到问题。

其实我已经得到了xy坐标,但它不正确..我使用Visual Studio 2008..n使用jquery..ok,设计是这样的:

我有一个 div 名称“drg”.. 那是一个大盒子.. 在 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 得到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);
    }

完成上述两个事件的演示

根据评论

由于您不想要负值,因此请使用Math.abs()使所有值变为正值。

于 2012-06-13T02:03:39.873 回答