我一直在使用JQuery UI的可拖动功能,但在将元素从一个父级拖到另一个父级时,保持元素位置的问题一直困扰着我。一旦将元素移动到另一个父级,它的定位就会严重偏差。然后,我开始计算偏移量并将其应用于元素,这样就可以解决问题了。但是,在我开始对页面进行样式设置后,一切变得更糟了。
这似乎是一个简单的要求,所以不确定是否漏掉了什么明显的技巧?
如果上面的内容不清楚,请见谅,很难解释清楚。
谢谢 Steve 附:以下只有js代码,它不太美观,有些值我现在已经硬编码了:
这似乎是一个简单的要求,所以不确定是否漏掉了什么明显的技巧?
如果上面的内容不清楚,请见谅,很难解释清楚。
谢谢 Steve 附:以下只有js代码,它不太美观,有些值我现在已经硬编码了:
$(document).ready(function() {
makeDraggable($(".draggable"));
});
function makeDraggable(el) {
var clone ;
var x = 0;
var y = 0;
$(el).draggable({
zIndex: 1000,
start:function() {
if($(this).parent().parent().attr("id") == "browser") {
clone = $(this).clone();
makeDraggable($(clone));
$(clone).css("position","absolute");
$(clone).css("z-index","0");
$(this).parent().append($(clone));
} // end if
},
drag:function() {},
stop:function() {
if($(this).parent().parent().attr("id") == "browser") {
var offset = 0;
var total_item_width = parseInt($(this).css("padding-left"))+parseInt($(this).css("padding-right"))+$(this).width();
$(clone).css("position","relative");
$("#canvas").append($(this));
offset = ($("#canvas").find(".draggable").size()-1)*total_item_width;
$(this).css("left",parseInt($(this).css("left"))+827-offset);
offset = ($("#canvas").find(".draggable").size()-1)*($(this).height()+12);
$(this).css("top",parseInt($(this).position().top));
} // end if
}
});
}