我正在尝试为某些按钮设置动画,但我不明白,为什么隔离范围不起作用。这是一个小提琴:Fiddle
https://jsfiddle.net/gLhveeor/4/
mouseenter应该仅触发特定的动画,而不是所有ng-repeat项。
我希望你能帮助我。
最佳答案
这不是范围问题,您只是使用元素的HTMLCollection初始化TimelineLite
对象,然后在所有元素上运行动画。而是在鼠标悬停时选择必要的元素,如下所示:
.controller('myCtrl', function ($timeout, $scope) {
$timeout(function () {
var tl = new TimelineLite();
tl.stop();
$scope.play = function ($event) {
var target = $event.target.querySelector('.foo-2');
tl.to(target, 0.4, {x: 30});
tl.play();
};
}, 0);
});
在HTML中将事件对象传递到处理程序的位置:
<div my-directive class="foo" ng-mouseenter="play($event)">
演示: https://jsfiddle.net/gLhveeor/5/
但是我可以给您的建议是将此登录名移入指令中,将它们放在 Controller 中并不是最好的主意。