1
누군가가 이것을 살펴볼 수 있다면 정말 감사 할 것입니다. 그것은 angular.enter와 angular.leave를 사용하는 매우 간단한 앵귤러 슬라이드 쇼이지만, ng-enter와 ng-leave 사이에는 지연이 없어서 제거 할 수 없습니다. ng-enter가 들어가기 전에 ng-finish가 끝나야하지만 두 애니메이션이 동시에 발생하기를 바랍니다.
http://plnkr.co/edit/fqJOYxcSR2wO5g7LPQNy?p=preview
JS :
var myApp = angular.module('myApp', ['ngAnimate']);
myApp.controller('sCtrl', function($scope) {$scope.clicks = 0});
myApp.directive('slidesDirective', function ($animate) {
return function (scope, element, attr) {
// Sets up and animates the first slide
var e1 = angular.element('<div class="slide"><br>Odd Slide<p>Click Me</p></div>');
var e2 = angular.element('<div class="slide"><br>Even Slide<p>Click Me</p></div>');
$animate.enter(e1, element);
// Checks if the click counter value has changed.
scope.$watch('clicks', function(val) {
if (val) {
if (val % 2 === 0) {
$animate.leave(e2);
$animate.enter(e1, element);
} else {
$animate.leave(e1)
$animate.enter(e2, element);
}
}
})
};
});
HTML : 당신이 요구하는지 내가 생각 달성하기 위해 애니메이션 CSS를 조금 변경했습니다
<div ng-click="clicks = clicks + 1" class="slides" slides-directive></div>
사이트가 모바일 장치를 대상으로한다는 것을 제외하고는 내가 찾고있는 것이고, 하드웨어 가속 변환을 사용하여 애니메이션이 매끄럽게 보이기를 바라고 있습니다. 내가 어떻게 그럴 수 있니? translate3D (100 %, 0,0)를 시도했지만 일부 브라우저에서는 제대로 작동하지 않는 것 같습니다 ... translateX는 꽤 잘 지원되는 것 같습니다. –
IOS 시뮬레이터에서 솔루션을 살펴 봤는데 어떤 이유로 정확하게 표시되지 않습니다. 그 대답은 두 애니메이션이 동시에 발생하는 것과 관련이 있다고 생각합니다. –
방금 plnkr이 왼쪽 : 0 대신 translateX를 사용하도록 업데이트했습니다. 잘하면 도움이 되길 바랍니다. Chrome을 사용하고 있기 때문에 여러 브라우저 접두어를 생략 했으므로 나중에 다시 추가해야합니다. –