私はここでいくつかの重いCSS3のものを試していますが、解決できることを願っているいくつかの問題に遭遇しています:
1-ページを読み込むときにスライドするボックスがあります。まあ言ってみれば:
#box {
animation-duration: 3.5s;
animation-name: slidein;
}
@keyframes slidein { from { top: 0; } to { top: 100%; }}
ただし、私のメディアクエリでは、サイズ変更のため、これを次のように変更する必要があります。
@media only screen and (min-width: 768px) {
@keyframes slidein { from { top: 0; } to { top: 80%; }}
}
アニメーション名を同じに保ち、@ mediaクエリの1つでキーフレームを再定義するだけでよいと思いましたが、これは機能していないようです。なんで?(はい、適切なプレフィックスが設定されています)
2-上記の私の解決策は、サイズごとに異なるアニメーションを定義することです。
#box {
animation-duration: 3.5s;
animation-name: slidein;
}
@keyframes slidein { from { top: 0; } to { top: 100%; }}
@keyframes slidein-low { from { top: 0; } to { top: 80%; }}
@media only screen and (min-width: 768px) {
#box {
animation-name: slidein-low;
}
}
ただし、サイトのサイズを変更すると、メディアクエリの1つにヒットすると、アニメーションが最初からやり直されます。アニメーションを1回だけ再生したいのですが(サイズに関係なく、後でサイズを変更しても)、それだけです。したがって、#1の解決策がない限り、これはクエリが検出されたときにCSSを「再開始」するためだと思います。