ng-show 및 애니메이션을 사용하여 정렬되지 않은 목록에 포함 된 일부 개체에 대한 슬라이더를 만들려고합니다. 물체가 한 방향으로 미끄러지는데 잘 작동합니다.ng-class를 사용하여 클래스를 변경할 때 ng-show에 앵귤러 애니메이션이 작동하지 않음
그러나 사용자가 ng-class를 사용하여 클래스를 변경하면 왼쪽 또는 오른쪽으로 오브젝트를 슬라이드 할 수있게하여 애니메이션이 더 이상 작동하지 않게 할 수 있습니다.
왼쪽/오른쪽 케이스의 HTML은 :
<div class="slide-holder">
<ul class="slide-list">
<li class="slide-object" ng-show="directionElement == 0" ng-class="{'slide-object-left': direction === 'left', 'slide-object-right': direction === 'right'}">
Hello There 1! How are you?</li>
<li class="slide-object" ng-show="directionElement == 1" ng-class="{'slide-object-left': direction === 'left', 'slide-object-right': direction === 'right'}">
Hello There 2! How are you?</li>
<li class="slide-object" ng-show="directionElement == 2" ng-class="{'slide-object-left': direction === 'left', 'slide-object-right': direction === 'right'}">
Hello There 3! How are you?</li>
<li class="slide-object" ng-show="directionElement == 3" ng-class="{'slide-object-left': direction === 'left', 'slide-object-right': direction === 'right'}">
Hello There 4! How are you?</li>
</ul>
</div>
방향을 변경하기위한 제어 장치의 기능은 다음과 같다
.slide-object-left.ng-hide-add,
.slide-object-left.ng-hide-remove {
-webkit-transition:0.5s linear all;
-moz-transition:0.5s linear all;
-o-transition:0.5s linear all;
transition:0.5s linear all;
position:absolute;
}
.slide-object-left.ng-hide-add {
left:100%;
}
.slide-object-left.ng-hide-remove,
.slide-object-left.ng-hide-add.ng-hide-add-active {
left:0;
}
.slide-object-left.ng-hide-remove.ng-hide-remove-active {
left:-100%;
}
:
$scope.left = function() {
$scope.direction === 'left'
if($scope.directionElement > 0)
$scope.directionElement = $scope.directionElement - 1;
};
$scope.right = function() {
$scope.direction === 'right'
if($scope.directionElement < 3)
$scope.directionElement = $scope.directionElement + 1;
};
트랜지션 CSS는 다음과 같다
두 경우 모두 표시하기 위해 plnkr을 만들었습니다 : http://plnkr.co/edit/sh0uCAPZiCne4Y5ynFQ2?p=preview
EDIT 1 : 나는 Theoretisch의 답변에 따라 오작동으로 방향 전환을 일으키는 컨트롤러에서 '==='실수를 수정하기 위해 plnkr을 업데이트했습니다. 그러나 주류 문제와 애니메이션 문제는 여전히 남아 있습니다. 다음은 업데이트 plnkr입니다. http://plnkr.co/edit/lv1BBFjRoOmenTv7IBeC?p=preview
안녕 이론 - 완벽하게 작동하는 '==='것은! 나는 그것을 발견하지 못했다고 믿을 수 없다 - 몇 주 동안 그것을보고 있었다. plnkr에서 변경 한 CSS는 효과가없는 것 같습니다. 맨 아래에서 오른쪽/왼쪽을 처음 클릭하면 이상한 행동이 표시됩니다 .- 당신은 무엇을 생각하고 계십니까? –
CSS가 작동해야하지만 첫 번째 클릭에서 버그가있는 이유를 알 수 없습니다. 범위가있는 것으로 가정하지만 확실하지 않습니다. 나는 여전히 그것을 고치려고 노력하고 있지만 ... 지금은 해결책이 없다 ... – theoretisch
@ TomO'Brien 나는 더 나은 버전을 추가했다. 이제 애니메이션이 작동합니다. – theoretisch