我使用Jquery脚本在div内部拖动图像(目前只有一个图像)。我目前正在使用此代码:
var offset = 0,
xPos = 0,
yPos = 0;
$(document).ready(function(){
$(".item").draggable({
containment: '#house_wall1',
drag: function(){
offset = $(this).position();
xPos = offset.left;
yPos = offset.top;
$('#posX').text('x: ' + xPos);
$('#posY').text('y: ' + yPos);
},
// Find original position of dragged image.
start: function(event, ui) {
// Show start dragged position of image.
var Startpos = $(this).position();
$("div#start").text("START: \nLeft: "+ Startpos.left + "\nTop: " + Startpos.top);
},
// Find position where image is dropped.
stop: function(event, ui) {
// Show dropped position.
var Stoppos = $(this).position();
$("div#stop").text("STOP: \nLeft: "+ Stoppos.left + "\nTop: " + Stoppos.top);
}
});
});
我的问题不在于可拖动的图像不在div中,我的问题是位置x和y是根据屏幕尺寸计算的,而不是div。这意味着如果您调整屏幕大小或屏幕分辨率较低,图像实际上将保持与具有其他分辨率的人不同的x和y位置。如何更改图像位置以从div边距而不是屏幕尺寸跟踪x和y。提前谢谢。
答案 0 :(得分:1)
使用 position()
代替offset()
。 position()
为您提供上/下w.r.t.到元素的父元素而不是文档top / left。
offset = $(this).position();