Я столкнулся с этим сегодня, с модальностью position: fixed
, которую я использовал повторно.Я не смог сохранить display: none
, а затем оживить его, так как он только что появился, и z-index
(отрицательные значения и т. Д.) Тоже делали странные вещи.От 1006 * до height: 100%
, но это работало только при появлении модальной модели.Это так же, как если бы вы использовали left: -100%
или что-то еще.
Тогда меня поразило, что был простой ответ.Et voila:
Сначала ваш скрытый модал.Обратите внимание, что height
- это 0
, и проверьте объявление height
в переходах ... оно имеет 500ms
, , которое длиннее, чем мой opacity
переход .Помните, что это влияет на исходящий переход затухания: возвращение модального режима в состояние по умолчанию.
#modal-overlay {
background: #999;
background: rgba(33,33,33,.2);
display: block;
overflow: hidden;
height: 0;
width: 100%;
position: fixed;
top: 0;
left: 0;
opacity: 0;
z-index: 1;
-webkit-transition: height 0s 500ms, opacity 300ms ease-in-out;
-moz-transition: height 0s 500ms, opacity 300ms ease-in-out;
-ms-transition: height 0s 500ms, opacity 300ms ease-in-out;
-o-transition: height 0s 500ms, opacity 300ms ease-in-out;
transition: height 0s 500ms, opacity 300ms ease-in-out;
}
Second, ваш видимый модальный режим.Скажем, вы устанавливаете .modal-active
на body
.Теперь height
равно 100%
, и мой переход также изменился.Я хочу, чтобы height
был мгновенно изменен, а opacity
- 300ms
.
.modal-active #modal-overlay {
height: 100%;
opacity: 1;
z-index: 90000;
-webkit-transition: height 0s, opacity 300ms ease-in-out;
-moz-transition: height 0s, opacity 300ms ease-in-out;
-ms-transition: height 0s, opacity 300ms ease-in-out;
-o-transition: height 0s, opacity 300ms ease-in-out;
transition: height 0s, opacity 300ms ease-in-out;
}
Вот и все, он работает как шарм.