2013-07-03 5 views
3

Проблема: Могу ли я использовать переход CSS для управления тем, как div перемещается в освобожденное пространство, созданное другим скрытым div.Переход CSS к плавному переходу элементов за другим элементом скрыт.

У меня есть элементы в моем приложении, которые появляются и исчезают (отображение: нет) на основе пользовательских интервалов. Как и ожидалось с дисплеем: нет, иногда смежный элемент будет перемещаться, чтобы занять освобожденное пространство.

Я не против, чтобы в этом случае двигались. Я хотел бы контролировать , как он перемещается. То, что я хотел бы для перехода через css-переход или другой метод, а не просто рывок на место. Это возможно?

Вот сценарий JS, который иллюстрирует сценарий с помощью нажатия кнопки. Когда #red скрыт, я хотел бы видеть, что #blue перемещается в позицию более постепенно. Спасибо.

http://jsfiddle.net/uV6W7/1/

Вот код в jsfiddle:

HTML

<div id="red"></div> 
<div id="blue"></div> 
<p> 
<button id="remove" type="button">Remove Red</button> 

CSS

#red { 
    display: inline-block; 
    background-color: red; 
    height: 200px; 
    width: 200px; 
} 
#blue { 
    display: inline-block; 
    background-color: blue; 
    height: 200px; 
    width: 200px; 
} 

Javascript

$("#remove").on("click", function(event){ 
    if($('#remove').text()=="Remove Red") { 
     $('#red').fadeOut(); 
     $('#remove').html("Restore Red"); 
    }else { 
     $('#red').fadeIn(); 
     $('#remove').html("Remove Red"); 
    } 
}); 
+0

Вы изучали эффекты jQuery? http://jqueryui.com/effect/ – Learner

+0

Кроме того, http://jqueryui.com/resources/demos/effect/easing.html – Learner

+0

Спасибо, но я стараюсь избегать добавления пользовательского интерфейса jquery, поскольку я понимаю, что он не хорошо ладите с Bootstrap. Был надеется, что есть только CSS-решение. – Joel

ответ

1

Вы можете скрыть красный, сдвинув его к 0 ширина состояния. Это приведет к тому, что правый элемент будет скользить влево.

$('#red').animate({width:'toggle'}); Может использоваться для перемещения его влево.

Вы также можете обернуть #red в другой div, а затем затухать #red, а затем соединить контейнер, чтобы объединить визуальные эффекты.

+0

Это интересная идея, я буду исследовать. Но удаляемый элемент может быть слева, он может быть выше, так что может усложняться управление. Скорее всего, я надеюсь на слишком легкое решение. :) – Joel

+0

Ну, вы также можете использовать методы jQuery slideUp()/slideDown(). Для вертикальных решений. К сожалению, я не знаю волшебного универсального варианта, который работает для каждого направления. – EWit

+0

Мне нужно поиграть с ним, но что-то в этом роде могло бы работать для меня. когда я говорю, что это «выше», это не так, это просто завернуто на следующую строку, поэтому вариация этой темы может помочь сгладить ее. Я пойду дальше и отмечу это как ответ. – Joel

Смежные вопросы