Css jqueryui:放入相对定位的容器中

Css jqueryui:放入相对定位的容器中,css,jquery-ui,Css,Jquery Ui,我使用jQueryUI将对象的克隆拖到可拖放空间。但是,我需要可拖放空间具有position:relative属性,因为可拖放空间会滚动,我希望被拖放的元素也会随之滚动。但是,当我放下克隆时,它会跳到右边,而不是停留在我放下它的地方。我该如何应对 下面是一把小提琴,它展示了我的问题: 编辑:根据我的评论进行更新。这里有一个解决方案,但我不确定,如果是,你在寻找什么 替换此行: $(this).append($(ui.helper).clone()); 关于这一点: $('<div cla

我使用jQueryUI将对象的克隆拖到可拖放空间。但是,我需要可拖放空间具有
position:relative
属性,因为可拖放空间会滚动,我希望被拖放的元素也会随之滚动。但是,当我放下克隆时,它会跳到右边,而不是停留在我放下它的地方。我该如何应对

下面是一把小提琴,它展示了我的问题:


编辑:根据我的评论进行更新。

这里有一个解决方案,但我不确定,如果是,你在寻找什么

替换此行:

$(this).append($(ui.helper).clone());
关于这一点:

$('<div class="to_drag"></div>').appendTo(this);
$('')。附加到(本);
如果不使用ui.helper,它就可以工作

试试这个

$(".canvas").droppable({
    accept: '.to_drag',
    drop: function(event, ui) {
        var clone = $(ui.helper).clone();
        var parent = $('.canvas.ui-droppable');

        $(this).append(clone);
        var leftAdjust = clone.position().left - parent.offset().left;
        var topAdjust = clone.position().top - parent.offset().top;
        clone.css({left: leftAdjust, top: topAdjust});

    }
});
基本上,这个想法是,当你把可拖放的文件放在一个相对的div中。。包含在Dropable中的任何元素都会获得不必要地添加到其中的父元素的偏移位置。。因此,您只需在drop callback函数中删除额外的偏移量

请密切注意和之间的区别。。这是理解上述代码的关键

注意:
我尝试使用JSFIDLE。。但JSFIDLE在定位方面有点不太灵活。。仅在浏览器上试用,它应该可以工作

为什么需要将可拖放空间设置为
位置:相对
?也许,如果你给我的代码添加一点上下文,我就可以弄明白我需要能够滚动画布,并让拖动的元素随画布一起滚动。我想这个更新说明了我对相对职位的需要:对不起,我还没有看到你的副手,我想我的代码在这方面不起作用。但是我在新的上试过了,它也能工作。代码的问题是元素跳到了容器的左上角,所以这是一个类似的问题。这正是我想要的。谢谢我的荣幸!我很高兴你举了一个更广泛的例子。。它帮助我帮助你:)@abbood你好,请任何人回答我的问题,请点击此链接: