gpt4 book ai didi

css - AngularJS - 将元素从一个容器动画化到另一个容器

转载 作者:行者123 更新时间:2023-11-28 12:15:56 24 4
gpt4 key购买 nike

我有两个 div,一个一开始是空的,另一个有一些预定义的元素。单击一个列表中的元素时,另一个列表会将元素添加到其中。

我想要实现的是为一个列表中的元素设置动画,使其看起来像是实际移动到另一个列表中。 (我希望元素从右向左移动)。我不太了解 CSS 动画或 AngularJS 动画。在 jQuery 中,我只需调用 div id 上的 $().animate() 即可修改属性。

hoping to achieve

我将如何在 AngularJS 中做同样的事情?

JS:

var app = angular.module('app', []);

app.controller('Ctrl', function ($scope) {

$scope.selectedItems = [];
$scope.items = ['a', 'b', 'c'];

});

HTML:

<div ng-controller="Ctrl">

<div class='container'>
<div class='inline selected-container' >
<div ng-repeat='selected in selectedItems track by $index'> <!-- I would like items to appear here after items from other container have finished moving -->
{{selected}}
</div>
</div>

<div class="inline">
<!-- I would like to push these items left on click -->
<div class='inline box' ng-repeat="item in items" ng-click="selectedItems.push(item);">
{{item}}
</div>
</div>
</div>

</div>

这是我目前拥有的链接:

http://plnkr.co/edit/TZPmsCcR1xMcPW4eIEf3?p=preview

最佳答案

我在这个页面上阅读了对 ng-animate 的体面解释:http://www.jvandemo.com/how-to-create-cool-animations-with-angularjs-1-2-and-animate-css/

本质上,您需要在 CSS 中定义动画,然后将 ng-enter 和 ng-leave 附加到您要实现这些动画的类中。

/* Define your Animation , or just download animate.css which has all these defined*/ 
@-webkit-keyframes fadeOutLeft {
0% {
opacity: 1;
-webkit-transform: translateX(0);
transform: translateX(0);
}

100% {
opacity: 0;
-webkit-transform: translateX(-20px);
transform: translateX(-20px);
}
}

@keyframes fadeOutLeft {
0% {
opacity: 1;
-webkit-transform: translateX(0);
-ms-transform: translateX(0);
transform: translateX(0);
}
100% {
opacity: 0;
-webkit-transform: translateX(-20px);
-ms-transform: translateX(-20px);
transform: translateX(-20px);
}
}
.fadeOutLeft {
-webkit-animation-name: fadeOutLeft;
animation-name: fadeOutLeft;
}

您必须在 CSS 中将动画附加到您的元素:

/* Apply your animation, which will run on ng-repeat, ng-hide, ng-show, etc */
.item {
/* this is the element you're animating */
}
.item.ng-enter { /* attach ng-enter */
-webkit-animation: fadeInLeft 1s;
-moz-animation: fadeInLeft 1s;
-ms-animation: fadeInLeft 1s;
animation: fadeInLeft 1s;
}
.item.ng-leave { /* attach ng-leave */
-webkit-animation: fadeOutLeft 1s; /* */
-moz-animation: fadeOutLeft 1s;
-ms-animation: fadeOutLeft 1s;
animation: fadeOutLeft 1s;
}

更新:
http://plnkr.co/edit/TZPmsCcR1xMcPW4eIEf3?p=preview

关于css - AngularJS - 将元素从一个容器动画化到另一个容器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22563733/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com