刚接触angular的animate,自己写了个animate试了试,出了点问题,先上代码..
var animate = angular.module('phoneAnimations', []);
animate.animation('.phoness', function() { //这个是给ngview用的
return {
enter: function(element, done) {
element.css({
opacity: 0.5,
position: "relative",
top: '100px',
left: '200px'
}).animate({
top: 0,
left: 0,
opacity: 1
}, 1000, done)
}
}
})
animate.animation('.repeat-animation', function () { //这个是给那个repeat用的
return {
enter : function(element, done) {
console.log("entering...");
var width = element.width();
element.css({
position: 'relative',
left: '-100px',
opacity: 0
});
element.animate({
left: 0,
opacity: 1
}, done);
},
leave : function(element, done) {
element.css({
position: 'relative',
left: 0,
opacity: 1
});
element.animate({
left: '-100px',
opacity: 0
}, done);
},
move : function(element, done) {
element.css({
left: "50px",
opacity: 0.5
});
element.animate({
left: "0px",
opacity: 1
}, done);
}
}
});
代码如上,出现的问题是:ngview的动画可以实现,但是那个repeat的就无效,切换、筛选的时候也无效,只有把第一个动画,也就是ngview的注销掉就可以正常出现动画,这个是为什么?
还有一个问题是:使用angular的css动画的时候,也是设置了ngview和ngrepeat的动画,但是刚刷新的时候却只有ngview的动画会执行,有没有办法控制哪个先执行? 或者让刷新的时候执行ngrepeat的动画呢?
两个问题,初学者请多多保函。
还有个官方phone-cat案例源码中一段关于动画的,不打理解,接着上码
angular.
module('phonecatApp').
animation('.phone', function phoneAnimationFactory() {
return {
addClass: animateIn,
removeClass: animateOut
};
function animateIn(element, className, done) {
if (className !== 'selected') return;
element.css({
display: 'block',
position: 'absolute',
top: 500,
left: 0
}).animate({
top: 0
}, done);
return function animateInEnd(wasCanceled) {
if (wasCanceled) element.stop();
};
}
function animateOut(element, className, done) {
if (className !== 'selected') return;
element.css({
position: 'absolute',
top: 0,
left: 0
}).animate({
top: -500
}, done);
return function animateOutEnd(wasCanceled) {
if (wasCanceled) element.stop();
};
}
});
HTML是这样的
<p class="phone-images">
<img ng-src="{{img}}" class="phone"
ng-class="{selected: img === $ctrl.mainImageUrl}"
ng-repeat="img in $ctrl.phone.images" />
</p>
我不太理解这是怎么判断是增加还是移除类名的? 难道开始的return{addclass 和 removeClass这样就可以?这不是自定义的属性名?}
曾经蜡笔没有小新2017-05-15 17:06:13
Why no one answered? Where has the great god gone? My heart is so tired