我正在構建一個AngularJS應用程序,通過過濾不透明度來顯示和隱藏元素。該元素也通過應用CSS關鍵幀動畫進行旋轉。我遇到的問題是過渡或動畫口吃。將CSS動畫應用到元素後,CSS過渡會造成阻塞
當元素的不透明度爲1並且轉換淡出爲0時,元素看起來會返回幾幀。這在GIF中表現得更好。您可以看到它在不透明度更改之前跳回。
這是我的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;
}
這是我的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>
您可以在此codepen整個事情玩。希望有人能指引我正確的方向。
我試過(我敢肯定你也是)在另一個元素中包裝廣場並隱藏/顯示包裝,但它似乎沒有幫助:http://codepen.io/anon/pen/DctGj –
是的,那也不適合我。結束了你的回答。 http://stackoverflow.com/a/24474564/106997 –