javascript - ngAnimate 一个 DOM 元素,它是使用 UI Router 呈现的模板的一部分

标签 javascript css angularjs

我有这个示例元素,它使用 UI Router 和模板文件来呈现 DOM 元素。 http://plnkr.co/edit/3KgB5g

我想达到的目标: 当您单击PopulationPersonnel 时标题淡入,模板呈现并在我返回主菜单时淡出。最好通过使用这样的指令:

<h1 anim-fade>Population</h1>

到目前为止我尝试了什么:

我试图为 [ui-view].ng-enter h1 定义 CSS 规则,但这并没有正常工作,因为 ng-enter ng-leave View 的“阶段”重叠,所以那里的东西变得困惑。

我尝试使用 $animate 服务创建一个指令,但在决定何时触发“进入”和“离开”事件时卡住了。

我希望有一个简单、独立的解决方案,并将自己做进一步的研究。同时,我们将不胜感激任何建议。谢谢:)

最佳答案

ngAnimate 的问题在于它同时显示出现和消失的元素。您可以使用 CSS 关键帧动画来解决这个问题,它允许您像这样隐藏一半动画的特定元素。

@keyframes uiview-fadeIn {
0% {
    display: none;
    opacity: 0;
    max-height: 0px;
    overflow:hidden;
}

49% {
    display: none;
    opacity: 0;
    max-height: 0px;
    overflow:hidden;
}

50% {
    display: block;
    opacity: 0;
}

100% {
    display: block;
    opacity: 1;
}
}

@keyframes uiview-fadeOut {
0% {
    display: block;
    opacity: 1;
    margin-top: -20px;
}

49% {
    display: block;
    opacity: 0;
    margin-top: -20px;
}

50% {
    display: none;
    opacity: 0;
    max-height: 0px;
    overflow:hidden;
    margin: 0px 0px 0px 0px;
}

100% {
    display: none;
    opacity: 0;
    max-height: 0px;
    overflow:hidden;
    margin: 0px 0px 0px 0px;
}
}

关于javascript - ngAnimate 一个 DOM 元素,它是使用 UI Router 呈现的模板的一部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23703167/

相关文章:

javascript - AngularJS 服务器表单验证/Javascript : Parsing javascript variable "path"

javascript - Angular : factory $http service

javascript - 使用 d3.transition() 更改 CSS

javascript - 穿透Z-index

html - 当另一个 DIV 具有 100% 宽度时,为什么 DIV 不占据移动 Chrome 上的整个屏幕宽度?

HTML - IE10 无法正确显示表格?

javascript - 对象不支持 IE 10 中的属性或方法 'querySelector'

javascript - 使用 GAS 在 Google 工作表选项卡之间附加数据

javascript 从小数点后三位向上舍入

javascript - 如何读取数组数据而不分配给数组变量