doo*_*man 22 angularjs angularjs-ng-repeat ng-animate
当使用ngAnimate淡入ngRepeat中的每个项目时,当前所有项目同时淡入.在前一项褪色至例如50%之后,每个项目是否可能淡入,从而产生级联效应?
<ul>
<li ng-repeat="phone in phones" ng-animate="{enter: 'phone-fade-enter'}">
<img src="{{phone.img}}"> {{phone.name}}
</li>
</ul>
Run Code Online (Sandbox Code Playgroud)
使用ngAnimate,如果可以延迟每个项目的动画,那将是很好的,例如:
<li ng-repeat="phone in phones" ng-animate="{enter: 'phone-enter', delay: 500}">
Run Code Online (Sandbox Code Playgroud)
有办法解决这个问题吗?
谢谢!
mat*_*sko 27
现在支持1.2本地支持:https://docs.angularjs.org/api/ngAnimate#css-staggering-animations
要使用它,请ng-enter-stagger在CSS中使用选择器,如下所示:
CSS:
.animated.ng-enter-stagger {
transition-delay: 0.3s;
animation-delay: 0.3s;
}
Run Code Online (Sandbox Code Playgroud)
sass(如果在使用中):
=stagger($delay)
&-stagger
transition-delay: $delay
animation-delay: $delay
.animated
&.ng-enter
+stagger(0.3s)
Run Code Online (Sandbox Code Playgroud)
小智 14
您可以通过在重复元素上设置转换延迟样式来获得此效果.(需要v1.1.5)
<li ng-repeat="phone in phones" ng-animate="{enter: 'phone-enter'}" style="transition-delay: {{$index * 500}}ms">
Run Code Online (Sandbox Code Playgroud)
您必须在CSS中单独设置过渡属性,否则内联样式将覆盖整个过渡:
.phone-enter {
opacity:0;
-webkit-transition-property: all;
-webkit-transition-timing-function: ease-out-cubic;
-webkit-transition-duration: 400ms;
}
.phone-enter.phone-enter-active {
opacity: 1;
}
Run Code Online (Sandbox Code Playgroud)
这是heyotwell创建的示例的分支.
| 归档时间: |
|
| 查看次数: |
19789 次 |
| 最近记录: |