【发布时间】:2014-12-16 09:45:23
【问题描述】:
我正在学习 Angular,我对 ng-view 模板之间的动画有疑问。
当我点击模板链接时,当前模板和新模板(点击一个)保持动画同时,使ng-view之后的内容同时跳下新旧模板高度.
这是我的 index.html:
<ul>
<li><a href="#/">View 1</a></li>
<li><a href="#/view2">View 2</a></li>
</ul>
<div>
<div ng-view></div>
</div>
page.html(模板)
<div class="page">
<div class="center"><!-- this div centers the content horizontally,
it has a fixed value (with margin:0 auto) which
will change with media querys -->
<h1>view</h1>
</div>
</div>
还有 CSS:
.ng-enter, .ng-leave {
-webkit-transition: all 1s ease;
-moz-transition: all 1s ease;
-o-transition: all 1s ease;
transition: all 1s ease;
}
.ng-enter {
opacity: 0;
}
.ng-enter-active{
opacity: 1;
}
.ng-leave {
opacity: 1;
}
.ng-leave-active {
opacity: 0;
}
.page>div.center{
width: 500px; /* fixed width, this value will change in media queryes*/
margin: 0 auto;
}
在开始时显示View 1。当我点击 View 2 以首先淡出 View 1,然后淡入 View 2 时,如何做到这一点?
现在,当我单击 View 2 时,它会同时启动淡入淡出,同时 View 1 淡出,使 ng-view 之后的内容跳转到两个模板高度,我不这样做不想。
正如@Dabbiemiller 建议的那样,使用display:inline-block 套装,但随后它破坏了我的水平居中 - plunker
【问题讨论】:
-
简单地说,你可以在转换中放置一个延迟属性:plnkr.co/edit/EcI5kBxo4pXCsh3th8Jh?p=info
-
@Dabbiemiller
ng-view之后的内容仍在你的插件中。 -
@Vucko 尝试给 ng-view div 一个固定大小。或者也许把它放在一个固定大小的容器中
-
这可能是个坏主意...;)
标签: angularjs