我在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);
}
});
});
我的问题是x和y值是从屏幕边缘指定的,而不是它们应该的div。因此,如果您的屏幕分辨率较低或者浏览器窗口较小,则x和y值将与分辨率较低的屏幕不同。
我发布了一个与之前类似的问题并且认为它已修复,但不幸的是它没有。我听说使用position()
代替offset()
应该可以胜任,但这仍然无法解决。也许是因为position()
在这种情况下等于offset()
?
提前致谢。
答案 0 :(得分:1)
如果你想将div作为左边和上边的坐标原点。你必须设置位置样式属性。 div position =“relative”或div position absolute
答案 1 :(得分:0)
异常是表内部元素,如td和tr,对于它们,表是offsetParent