Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript div位置内的可拖动jquery函数_Javascript_Jquery_Html - Fatal编程技术网

Javascript div位置内的可拖动jquery函数

Javascript div位置内的可拖动jquery函数,javascript,jquery,html,Javascript,Jquery,Html,我正在使用Jquery a脚本在div内拖动图像(当前只有一个图像)。我正在使用以下代码: var offset = 0, xPos = 0, yPos = 0; $(document).ready(function(){ $(".item").draggable({ containment: '#house_wall1', drag: function(){ offset = $(thi

我正在使用Jquery a脚本在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。提前感谢。

使用而不是
offset()
为元素的父元素提供上/左w.r.t.,而不是文档上/左

offset = $(this).position();

像上面那样?在这种情况下,我不能再移动图像了,它不再是可拖动的了对不起,我误解了你的意思,它现在可以正常工作了,使用上面的代码。谢谢