私はcss3アニメーションに取り組んでおり、アニメーションが終了した後、基本的にアニメーションの値を要素に適用できるanimation-fill-modeプロパティに出くわしました。
デフォルトでは、アニメーションが終了すると、要素は元の状態に復元されます。
たとえば
#box{
width: 100px;
position: absolute;
}
#box.startAnimation{
animation-name:first, second;
animation-duration:5s, 5s;
animation-timing-function:linear;
animation-delay:0s, 5s;
animation-iteration-count:1;
animation-fill-mode:forwards;
}
@-moz-keyframes first
{
0% {left:40%; top:0px;background:cyan}
100% {left:100px; top:0px;}
}
@-moz-keyframes second
{
0% {left:100px; top:0px;}
100% {left:0px; top:300px;width:300px}
}
forwards animation-fill-mode は、startAnimation クラスが適用される要素を、幅 300 ピクセル、上 300 ピクセル、左 0 ピクセルに配置します。
ただし、これらの値は要素の計算されたスタイルに適用され、css スタイルには適用されません。
誰かが要素の幅などを取得しようとすると、300px ではなく 100px が返されるため、これにより不整合が生じる可能性があります。
上記は、アニメーションが作成され、幅、高さ、左などのプロパティにアクセスする必要がある JavaScript ロジックがある大規模なプロジェクトでは、本当に奇妙になる可能性があります。
計算されたスタイルと div.style.width を介して読み取ったスタイルとの間にこの不一致があることを意味します(たとえば)
上記の問題に対する意見や解決策を知りたい
よろしく