我在获取矩形的x y坐标时遇到问题。
实际上我已经得到了x y坐标,但它不正确..我使用了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。
答案 0 :(得分: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);
}
<强> Complete demo with above two events 强>
由于您不想要负值,因此请使用Math.abs()
使所有值都为正值。