Javascript-Ionic Framework animate.css slideInUp和SlideOutUp动画不起作用
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Javascript-Ionic Framework animate.css slideInUp和SlideOutUp动画不起作用,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2715字,纯文字阅读大概需要4分钟。
内容图文
我有一个像火种的单一视图,看起来像
<div class="list card animated slideInUp current-image-item">
<img src="{{imageSource}}">
<button ng-click="sendFeedback(true)"> ClickMe </button>
</div>
当我单击此按钮时,当前(一张和唯一一张卡)应该上升并逐渐消失.而且,我将在控制器的sendFeedback()函数中更新imageSource以指向另一个URL.然后,保存div应该从底部向上滑动.
我正在使用animate.css库来做slideInUp,并且在sendFeedback()中添加了类似的内容.
var element = angular.element(document.querySelector('.current-image-item'));
element.addClass('fadeOutUp');
element.one('webkitAnimationEnd mozAnimationEnd MSAnimationEnd oanimationend animationend', function(){
var randomItem = Math.round(Math.random() * ($scope.feed.length - 1));
element.removeClass('fadeOutUp');
// update current song in scope
$scope.imageSource = "http://google.com/img.png";
});
谁能帮助我制作此动画?
解决方法:
您可以创建某种自定义directive并使用$animate将animate.css动画应用于图像:
<img src="{{imageSource}}" tinder-like>
我在图像中添加了类似tinder的属性.这将是我们在模块中定义的指令.
由于您要在更改图像之前淡出图像,因此我们需要在图像源显示新图片之前应用动画.
为此,我们可以使用将绑定到该属性的另一个自定义属性:imageSource.
<img picture="{{imageSource}}" ng-src="" tinder-like>
I’ve used the name
picture
but it could have been anything else.
现在,该指令:
angular.module('app.directives', [])
.directive('tinderLike', function($animate){
var oldsource = "";
return {
restrict: 'A',
link: function(scope, element, attrs){
attrs.$observe('picture', function(value) {
if (oldsource !== value) {
$animate.addClass(element, 'animated fadeOutUp')
.then(function () {
$animate.removeClass(element, 'animated fadeOutUp');
return value;
})
.then(function(source){
attrs.$set('src', source);
});
}
oldsource = value;
});
}
};
});
我们观察属性图片何时发生变化:
attrs.$observe('picture', function(value) {
})
如果值已更改(我们使用了变量oldsource进行跟踪),则可以使用$animate将一个类添加到元素中:
$animate.addClass(element, 'animated fadeOutUp')
$animate.addClass返回promise,当解析时,它将允许我们删除之前添加的类:
$animate.removeClass(element, 'animated fadeOutUp')
最后要做的是设置图像源:
attrs.$set('src', source);
这就是它的样子
这是plunker.
如果我们想在图片变化时应用动画,那么我们的指令会简单得多:
.directive('tinderLike', function($animate){
var source = "";
return {
restrict: 'A',
link: function(scope, element, attrs){
attrs.$observe('src', function(value) {
if (source !== value) {
$animate.addClass(element, 'animated slideInUp')
.then(function () {
$animate.removeClass(element, 'animated slideInUp');
});
}
source = value;
});
}
};
});
因为可以直接观察我们图像的src属性.
这是该其他解决方案的plunker.
PS: I’ve included
animate.css
and use its animations.PPS: I’ve used a services which fetches random images from 07005.
内容总结
以上是互联网集市为您收集整理的Javascript-Ionic Framework animate.css slideInUp和SlideOutUp动画不起作用全部内容,希望文章能够帮你解决Javascript-Ionic Framework animate.css slideInUp和SlideOutUp动画不起作用所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。