jQuery сдерживание анимации - PullRequest
1 голос
/ 10 октября 2010

У меня проблема с методом анимации.

<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');
});

Проблема в том, что при срабатывании dragstop перемещенный мной ребенок скрыт и появляется только тогда, когда над ним находится анимация #containment.

На моем экране B1 и B2 имеют одинаковый размер, просто B1 не полностью виден, потому что анимация работает ...

alt text

Спасибо

1 Ответ

1 голос
/ 11 октября 2010

Просто предположение, но если у вас есть «переполнение: скрытое» из содержимого div #, при перетаскивании узла любая его часть будет скрыта родительским div.(Несмотря на то, что он находится за пределами родительского контейнера, с точки зрения DOM, он все еще дочерний).В качестве альтернативы вы можете переместить дочерний узел за пределы родительского div внутри слушателя dragstop.

...