Анимация DIV автоматически - PullRequest
       4

Анимация DIV автоматически

3 голосов
/ 11 февраля 2012

http://jsfiddle.net/AndyMP/fVKDy/

Эта скрипка иллюстрирует проблему, которую я пытаюсь решить.Контейнер DIV вмещает два анимированных DIV.Второй DIV имеет меньшую высоту, чем первый, потому что там меньше контента.Я пытаюсь сделать так, чтобы нижний DIV автоматически сдвигался вверх в соответствии с высотой содержимого во втором DIV, когда он видимНо он скользит вверх и через второй DIV.

Есть мысли о том, как решить эту проблему?

$(function() {
    $(".left_slide").click(function() {
        $(".block1").stop(true, true).animate({ left: -400 }, 500).hide(1000);
        $(".block2").stop(true, true).animate({ left: 0 }, 500);
    });
});
$(function() {    
    $(".right_slide").click(function() {
        $(".block2").stop(true, true).animate({ left: 400 }, 500);
        $(".block1").stop(true, true).animate({ left: 0 }, 500);
    });
});

CSS

#blog_slide_container {
position: relative;
width: 400px;
z-index: 5;
overflow: hidden;
border: 1px solid #000;
}
.block1 {
position: relative;
top: 0px;
left: 0px;
width: 400px;
z-index: 6;
background-color: #333;
color: #FFF;
}
.block2 {
position: absolute;
top: 0px;
left: 400px;
width: 400px;
z-index: 6;
background-color: #CCC;
color: #FFF;
}
#bottom_container {
position: relative;
float: left;
width: 100%;
height: 280px;
z-index: 3;
background-color: #000;
}

Ответы [ 3 ]

1 голос
/ 11 февраля 2012

Вот и все ... я думаю -> http://jsfiddle.net/fVKDy/13/ Обе части работают здесь.Просто поместите еще одну обертку в свои блоки и удалите тех, кто находится в положении.Единственное нестатическое позиционирование, которое вам нужно, - это дополнительная обертка.


Вот еще одна версия.http://jsfiddle.net/fVKDy/5/ Я собираюсь немного подправить ..

1 голос
/ 11 февраля 2012

Я считаю, что это то, что вы ищете.

http://jsfiddle.net/fVKDy/11/

Я скоро вернусь и отредактирую объяснение (надо бежать). Но в основном я добавил внутренний контейнер, который анимируется вместо самих элементов.

1 голос
/ 11 февраля 2012

Изменить: Проверьте мою обновленную скрипку

Добавлен код для динамического изменения высоты контейнера.

Проверить анимационную версию http://jsfiddle.net/skram/fVKDy/17/

Другая версия .. http://jsfiddle.net/skram/fVKDy/16/ <- Разница в том, что сдвиг влево / вправо происходит после скольжения нижних блоков вверх / вниз. </p>


Проверьте обновленную демоверсию fiddle .

Две вещи,

  1. Добавлена ​​фиксированная высота для #blog_slide_container. Когда вы анимируете, позиция анимации div становится absolute, и контейнер меняет свой размер на 0 height.
  2. Добавлено отображение block1 при нажатии правой кнопки мыши.
...