Buduję aplikację AngularJS, która pokazuje i ukrywa element, przenosząc jego krycie. Element jest również obracany poprzez zastosowanie animacji klatki kluczowej CSS. Problemem, który mam, jest przejście lub animacja zacina się.Przejścia CSS zacinają się po zastosowaniu do elementu z animacją CSS
Gdy element ma krycie równe 1, a przejście zanika go do 0, element pojawia się, aby powrócić do kilku klatek. Jest to lepiej zademonstrowane w GIF. Możesz zobaczyć, jak cofa się tuż przed zmianą krycia.
To jest mój CSS.
.square {
width: 100px;
height: 100px;
margin: 50px;
background: black;
}
.appear.ng-hide-add {
-webkit-transition: opacity 300ms linear;
opacity: 1;
}
.appear.ng-hide-add.ng-hide-add-active {
opacity: 0;
}
.appear.ng-hide-remove {
-webkit-transition: opacity 300ms linear;
opacity: 0;
}
.appear.ng-hide-remove.ng-hide-remove-active {
opacity: 1;
}
@-webkit-keyframes rotate {
from {
-webkit-transform: rotate(0deg);
}
to {
-webkit-transform: rotate(360deg);
}
}
.rotate {
-webkit-animation: rotate 1.5s infinite linear;
}
To jest mój HTML.
<div ng-app="app" ng-init="show = true">
<p>Toggle the opacity of the square. Sometimes the rotation is interrupted when the opacity transitions from 1 to 0.</p>
<button ng-click="show =!show">Toggle</button>
<div class="square appear rotate" ng-show="show"></div>
</div>
Możesz odtwarzać całość w tym codepen. Mam nadzieję, że ktoś wskaże mi właściwy kierunek.
Próbowałem (jestem pewien, że zrobiłeś to samo) owijając kwadrat w innym elemencie i ukrywając/pokazując opakowanie, ale to nie wydaje się pomagać: http://codepen.io/anon/pen/DctGj –
Tak, to też nie zadziałało. Skończyło się na twojej odpowiedzi. http://stackoverflow.com/a/24474564/106997 –