トランジションのみを使用するかアニメーションのみを使用するとすべてがうまくいくはずですが、混合物を使用して動作させる方法を考えることができません。CSSのアニメーションを持つ要素にネストされたCSSトランジションを使用するときのトラブル
基本的には、フェードインしたい外側の要素が1つあり、フェードが完了した後にスライドしたい内側の要素があります。
私の本当の例は複雑なので、私が何を追及するのかを示すフィドルを作成しました。
ここで下のバーを上のバーと同様に動作させるにはどうすればよいですか? (scaleXの違いは別として)。問題は、一番上のように開いてアニメーション化するのではなく、一番下の青いバーが完全に直ぐに現れることです。この例では
https://jsfiddle.net/joshuaohana/sqsLc5sd/ ちょうどあなたがanimate
代わりのanimation
を使用しているいずれかの色のボックス
<div class="outer">
<div class="inner">
</div>
</div>
<p></p>
<div class="outer2">
<div class="inner2">
</div>
</div>
.outer {
width: 300px;
height: 100px;
background-color: red;
opacity: 0.1;
}
.outer .inner {
height: 100px;
width: 0;
background-color: blue;
}
.outer:hover {
opacity: 1;
transition: opacity 1s;
}
.outer:hover .inner {
width: 100px;
transition: width 1s 0.5s;
}
.outer2 {
width: 300px;
height: 100px;
background-color: red;
opacity: 0.1;
}
.outer2 .inner2 {
height: 100px;
width: 0;
background-color: blue;
}
.outer2:hover {
opacity: 1;
transition: opacity 1s;
}
.outer2:hover .inner2 {
width: 100px;
animate: widen 1s 0.5s forwards;
}
@keyframes widen {
from {
transform: scaleX(0);
}
to {
transform: scaleX(1);
}
}
(SASSを使用して、それは私の実際のプロジェクトで私のミックスインの名前です)タイプミスでおっと、しかし、解決のために感謝します。私はこれが正しく構成されていないカップルを持っていて、変換元が助けになったようです! –
@JoshuaOhana sweet、問題ありません:) –