私はこのようなコード、持っている:Angularで未知の高さにアニメーション化する方法は?
<div ng-repeat="row in rows" class="my">
<img ng-src="{{row.pictureUrl}}">
{{row.text}}
</div>
現在の実装では、この(それはスタイラス形式のCSSです)、効果ダウンスライドのように見えることになって次のようになります。
$slowAnimationDuration = 100ms
.my
&.ng-animate
transition:all
animation-iteration-count 1
animation-duration $slowAnimationDuration
&.ng-enter
animation-name fadeInQuick
animation-timing-function ease-out
&.ng-leave
animation-name fadeOutQuick
animation-timing-function ease-in
@keyframes fadeInQuick
0%
height 0
opacity 0
20%
height calc(0.5em + 1vh + 1px)
50%
opacity 0.05
100%
height calc(1em + 2vh + 2px)
opacity 1
@keyframes fadeOutQuick
0%
height calc(1em + 2vh + 2px)
opacity 1
100%
height 0
opacity 0
これをコードは機能しますが、これまでのところアニメーションの品質は非常に優れています。 問題は、CSSのheight: auto
にアニメーションが存在しないことに関連しています。 私はAngularJS 1.5を使用しており、ngAnimateを注入しています。 イメージの高さを修正できますが、テキストを変更または切り取ることはできません。
アニメーションをもっと素敵にするにはどうすればいいですか?それも可能ですか?
更新:このanswerを試してみました。しばらくの間、ページが空のままで内容が表示された後、実際には醜いように見えます。また、この圧搾効果は魅力的ではありません。
私はこのトリックを見ましたが、アニメーション中にコンテンツのスクイーズという事実を除いて、これ以上のことはありませんhttp://stackoverflow.com/a/17260048/669493 – zoonman