AngularJS: CSS Animation On Click (ngClick)
AngularJS: CSS Animation On Click (ngClick)
在研究这个问题时,我在 Angular 中看到了几个与 CSS 动画"点击"相关的问题,但通常没有任何可靠或明确的答案。
我想知道在 AngularJS 环境 (1.x) 中单击元素时实现 CSS 动画的最佳实践方法。具体来说,假设我们想利用 Animate 中的动画.CSS每次我们单击有问题的元素时,都应该发生此动画。
这是我目前采取的路线,但想知道是否有更好的方法:
标记:
<div class="play" ng-click="animate($event)"></div>
js 函数(在控制器中):
$scope.animate = function(event) {
var el = event.srcElement;
angular.element(el).addClass('animate');
$timeout(function() {
angular.element(el).removeClass('animate');
}, 1000);
};
.CSS:
.play.animate {
animation:0.5s bounceIn ease;
}
我不是特别喜欢在动画完成后使用超时来删除类。ngClick 甚至是这里的答案,还是我应该使用完全自定义的指令?
您可以在控制器中设置变量:
this.animated = false;
this.animationToggle = function(){
this.animated = !this.animated;
};
在您的元素中,单击时更改值并有条件地添加您的类:
<div ng-class="{'play' : ctrl.animated}" ng-click="ctrl.animationToggle()"></div>
正如另一个你所说,绑定动画结束事件。但是,另一个你的答案会删除元素本身,而我认为 OP 想要做的是删除类。因此:
angular.element(el).bind('webkitAnimationEnd oanimationend msAnimationEnd animationend', function () {
angular.element(el).removeClass('animate');
});
您可以将
超时替换为
angular.element(el).bind('webkitAnimationEnd oanimationend msAnimationEnd animationend', function (e) {
$(this).remove();
});
HTML
<div ng-controller="ReportCtrl as vm">
<div class="refresh" ng-class="{'animate':vm.refreshing}" ngclick="vm.refresh()"></div>
</div>
控制器
.controller('ReportCtrl',function ($scope, $timeout) {
var vm = this;
vm.refreshing = false;
vm.refresh = function() {
if(!vm.refreshing){
vm.refreshing = true;
$timeout(function () {
vm.refreshing = false;
},3000);
}
};
})
相关文章:
- Fancybox是否将Click事件静音
- jQuery:.click(function(){(element),collapse('show',f
- Angular,表达式{{}}的结果没有插入到ng-click中
- 具有相同类的jquery-click元素
- Ng隐藏在Ng-click元素之外
- document.getElementById(“st”).click();不起作用
- 无法使以下ng on click outside指令在同一页面上的两个元素上工作
- 将代码放入click函数时出现javascript问题
- 将参数中类似形式的ID传递给函数click()
- 如何在ng-click中传递php对象
- 如何将以下“.click”转换为切换
- AngularJs的ng-click$事件将子元素作为目标传递
- angularjs-bindng-click从jquery动态加载DOM
- jsplumb中的Click事件处理程序丢失“;这个“;对象
- jquery on click事件来显示内容
- 如何在javascript中使用click函数选择数组元素
- 使用谷歌图表将mousedown事件注册为click
- AngularJS: CSS Animation On Click (ngClick)
- AngularJS ngClick vs binding to click
- click事件处理程序和ngClick指令的区别是什么?