AngularJS-使用ngAnimate时,从列表中删除会滞后
AngularJS - Deletion from list lags when using ngAnimate
我在项目中使用ngAnimate
模块在特定条件下为列表中的项设置动画。问题是,如果我使用ngAnimate
,那么从列表中删除会比不使用动画花费更多的时间。请检查我创建的plunker。
这是我的HTML:
<body ng-app="JU">
<div ng-app ng-controller="MyCtrl">
<h3>Non Laggin List</h3>
<ul>
<li ng-repeat="i in items" class="">{{i}}<button ng-click="remove($index)">Delete</button></li>
</ul>
<br/>
<h3>Lagging List</h3>
<ul>
<li ng-repeat="i in items2" class="animated error">{{i}}<button ng-click="remove2($index)">Delete</button></li>
</ul>
</div>
JS:
var JU = angular.module('JU', [
'ngAnimate'
]);
JU.controller('MyCtrl', ['$scope', function ($scope) {
$scope.items = [
'Hello',
'Click',
'To Delete',
'ME from',
'This list'
];
$scope.items2 = [
'Hello',
'Click',
'To Delete',
'ME from',
'This list'
];
$scope.remove = function (index) {
$scope.items.splice(index, 1);
};
$scope.remove2 = function (index) {
$scope.items2.splice(index, 1);
};
}]);
从第一个列表中删除操作快速且响应迅速。从第二个列表中删除会让人感觉迟缓和反应迟钝。我使用的实现与代码中的第二个列表类似。有什么办法我能修好吗?
当模块中包含ngAnimate
时,ng重复添加、删除等会在受影响的元素上添加类,以便为动画类添加转换。当您在原始类中提到过渡时,这将适用,ngAnimate将等待那么长的持续时间(假设动画发生在受影响的元素上),然后从DOM中删除该元素。但是,尚未为ng个重复动画类指定任何动画。所以,当元素被移除时,就会出现延迟行为。由于从重复中删除项目不需要任何动画,因此只需通过覆盖动画类的规则来关闭动画即可。
尝试添加这些:-
.animated.ng-move,
.animated.ng-enter,
.animated.ng-leave {
-webkit-animation-duration: 0s;
animation-duration: 0s;
}
演示
相关文章:
- 使用php或javascript从facebook相册URL中删除多余的部分
- RegEx删除空属性?例如,如果(class=“”||class=“”)移除;否则就下课
- 如何删除多行HTML排列中的空白
- 如何从rails中的代码中删除新行( )
- 删除对HTML元素的拖动
- 当图像转换为本地存储的DataURL时,EXIF被删除
- 按顺序添加和删除类
- iframe正在添加标签,需要删除它们
- 如何在HTML输入字段中添加不可删除的后缀
- addData()从最新图表中删除.js 2.1.3-怎么了
- 如何覆盖锚点元素's href目标,并在我点击转到目标javascript时删除其他错误
- 删除CKEditor工具栏按钮,但不删除功能
- 当浏览器上的后退按钮到达主页时,我需要删除Class
- 正在删除node.js中已验证的网站
- 正在从页面中删除iframe
- 如何从 HTML 查询中删除项目
- 如何在iOS应用程序中从Firebase中删除超过6小时的数据
- 未捕获的类型错误:无法读取属性'删除'的未定义
- 在不知道深度或父属性的情况下从对象中删除属性
- AngularJS-使用ngAnimate时,从列表中删除会滞后