私は CSS3 トランジション効果を Chrome と Safari で動作させようとしましたが、うまくいきませんでした。以下のコード例でわかるように、:target
擬似クラス セレクターを使用してキーフレーム アニメーションをトリガーしています。この場合、div をある位置から別の位置に移動します。別のリンクをクリックするとすぐに、div が消えます (元の位置に戻ります)。
この瞬間的なジャンプを防ぐために、div の元の状態に遷移効果を追加しました。これを行うと、少なくとも Firefox または Opera を使用している場合は、トランジションが開始され、div が一番上に「スライド」して戻ります。Chrome と Safari はトランジション効果を無視しているようですが、その理由がわかりません。
このようにトランジションとアニメーションを組み合わせたことがなかったので、何か不足している可能性がありますか?
Chrome と Safari (できれば CSS3) で動作させる方法についてのアイデアはありますか?
Mac OS X、Chrome 21、Firefox 14.0.1、および Opera 12.01 を使用しています
これがjsFiddleで、jsFiddle の例で使用されているコードは次のとおりです。
HTML
<a href="#id1">One</a>
<a href="#id2">Two</a>
<div id="id1">
Hello hello
</div>
CSS
#id1 {
position: absolute;
top: -100px;
left: 100px;
width: 100px;
height: 100px;
/* Not working */
-webkit-transition-timing-function: linear;
-webkit-transition-duration: 0.5s;
/* Working */
-moz-transition-timing-function: linear;
-moz-transition-duration: 0.5s;
/* Working */
-o-transition-timing-function: linear;
-o-transition-duration: 0.5s;
}
#id1:target {
-webkit-animation: down 0.5s ease-in forwards;
-moz-animation: down 0.5s ease-in forwards;
-o-animation: down 0.5s ease-in forwards;
}
@-webkit-keyframes down {
0% { top: -100px; left: 100px; }
100% { top: 200px; left: 100px; }
}
@-moz-keyframes down {
0% { top: -100px; left: 100px; }
100% { top: 200px; left: 100px; }
}
@-o-keyframes down {
0% { top: -100px; left: 100px; }
100% { top: 200px; left: 100px; }
}
</p>