2015-09-05 5 views
0

Я пытаюсь анимировать ng-hide, который я использую на кнопке оповещения об установке Ui Bootstrap в окне модного окна Ui Bootstrap. Я хочу, чтобы анимация включала и выключала оповещение, а также постепенно исчезать и выходить из нее.Анимация, показывающая/скрывающая предупреждение Ui Bootstrap в модальном окне AngularJS

Предупреждение отображается и скрывается должным образом, но скрывающая/показная анимация вообще не работает и полностью меня озадачивает.

Код шоу-шкура:

<alert type="danger" close="hideAlert = true" 
    ng-hide="hideAlert" class="ng-hide">ERROR!</alert> 

CSS-анимации для (который, вероятно, совершенно неправильно ...) является:

.alert.ng-hide-add, 
.alert.ng-hide-remove { 

    -moz-transition: 0.5s linear all; 
    -o-transition: 0.5s linear all; 
    -webkit-transition: 0.5s linear all; 
    transition: 0.5s linear all; 

    display: block !important; 
    opacity: 1; 
    max-height:50px; 
} 


.alert.ng-hide { 
    opacity: 0; 
    max-height:0px; 
} 

Я включил PLNKR здесь в показать его во всех его низость: http://plnkr.co/edit/rQ27FDLHapOTadPJuz6z

Пожалуйста, помогите ....

ответ

0

Нет необходимости использовать .ng-прятки добавить и .ng-прятки удалять классы, просто указать переход в .alert и изменить свойство в .alert.ng скрытия:

.alert { 
    -moz-transition: 0.5s linear all; 
    -o-transition: 0.5s linear all; 
    -webkit-transition: 0.5s linear all; 
    transition: 0.5s linear all; 

    display: block !important; 
    opacity: 1; 
    max-height:50px; 
} 


.alert.ng-hide { 
    opacity: 0; 
    max-height:0px; 
} 
+0

Я сделал обновленную версию с вашим предложение: http://plnkr.co/edit/8g0sElHHsuyzqo5FNj57 Я упустил «display: block! important;» потому что он оставляет пустое пространство размером скрытого предупреждающего сообщения, которое на самом деле не требуется. Теперь переход не работает без этого, он просто скрывается, прежде чем произойдет какое-либо увядание или сжатие ... –

+0

«display: block! Important;» не может быть опущен, см. Документацию по [ng-hide] (https://docs.angularjs.org/api/ng/directive/ngHide). Тем не менее, чтобы избавиться от нежелательного пространства, вы можете просто установить дополнение к 0, как в этом [plunker] (http://plnkr.co/edit/WcecsElbIkzM8Dzds8A8?p=preview) – gyantasaurus

+0

Спасибо, gyantasaurus. Еще одна вещь - я использую анимацию в другом месте моего проекта, и когда страница загружается (я использую хром), она, похоже, быстро скрывает все, что должно быть скрыто. Мне было интересно, связано ли это с настройкой отображения? –

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