jQuery包含动画

时间:2010-10-10 13:18:49

标签: jquery jquery-animate

我的动画方法有问题。

<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不完全可见...

alt text

由于

1 个答案:

答案 0 :(得分:1)

只是一个猜测,但是如果你从div#containment中“溢出:隐藏”,当你拖动节点时,它的任何部分都会被父div遮挡。 (即使它超出了父容器的边界,DOM-wise,它仍然是一个孩子)。或者,您可以将子节点移动到dragstop侦听器内的父div之外。