jquery - Angular 动画

标签 jquery animation angularjs

目前我在 ng-click Controller 中有这行代码

$(".message").show(300).delay(900).hide(300);

虽然它工作得非常好,但我被告知我绝对不能在 Controller 内进行动画/jQuery/DOM 操作。有没有另一种方法可以做到这一点,而不涉及大量的困惑?

最佳答案

编写一个简单的指令来监视其属性:

app.directive('animateMe', function() {
   return function(scope, element, attrs) {
      scope.$watch(attrs.animateMe, function() {
         element.show(300).delay(900).hide(300);
      })
   }
})

将该指令放在要设置动画的 HTML 元素上。让 ng-click 切换模型/范围属性。

<a ng-click="animateToggle = !animateToggle">animate</a>
<div animate-me="animateToggle">...</div>

更多代码,是的。但现在您有了可重用的东西(并且不需要选择器)。

Fiddle

在 fiddle 中,我将 ng-hide 添加到 div,以便它最初不会出现。

<小时/>

更新:
Angular 1.1.4 现在有 ngAnimate指示。虽然它不如编写自己的动画指令那么灵活,但它可以处理许多场景。 ng-show (和 ng-hide)指令支持 showhide animation methods .

关于jquery - Angular 动画,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15228157/

相关文章:

javascript - 如何在鼠标悬停时将图像定位在其他图像之上?

Angularjs - 如何检查唯一输入以及是否有重复标记为无效

javascript - Angular 自动完成返回一个空白列表

javascript - 通过单击按钮运行选择更改事件

java - 按钮倒计时 - Android

javascript - 使用 Javascript 移动一行中的列

css - Vue 添加元素到带有动画的列表

android - Android webview 中如何将 JSON 传递给 AngularJS?

javascript - 悬停时更改div颜色

jquery - 滑入式导航覆盖