我的动画方法有问题。
<div id="containment">
<div id="child1">C1</div>
<div id="child2">C2</div>
<div id="child3">C3</div>
</div
C1到C3是可拖动元素,我没有对它应用任何约束,因为当我离开#containment时,我会自动调整它的大小。
$("#containment > div").bind("dragstop", function(event, ui) {
var size = $.extend({}, $("#containment").data("originalSize"));
$.each($("#containment > div"), function(index, d) {
width = parseInt($(d).css("left"), 10) + parseInt($(d).outerWidth(), 10);
height = parseInt($(d).css("top"), 10) + parseInt($(d).outerHeight(), 10);
size.width = (width > size.width) ? (width + 50) : size.width;
size.height = (height > size.height) ? (height + 50) : size.height;
});
$("#containment").animate({
width: size.width,
height: size.height
}, 'slow');
});
问题是,当触发拖拽时,我搬出的孩子是隐藏的,只有在#containment动画结束时才会出现。
在我的屏幕B1和B2中具有相同的大小,因为动画正在运行,因此B1不完全可见...
由于
答案 0 :(得分:1)
只是一个猜测,但是如果你从div#containment中“溢出:隐藏”,当你拖动节点时,它的任何部分都会被父div遮挡。 (即使它超出了父容器的边界,DOM-wise,它仍然是一个孩子)。或者,您可以将子节点移动到dragstop侦听器内的父div之外。