10

CSS には、オブジェクトをパーセンテージで移動するときの標準的な動作があり、このパーセンテージはその親コン​​テナー (div) のサイズを表します。

これは、CSS3 を使用する場合には当てはまりませんtransform: translate3d()。X、Y、Z 座標のいずれかにパーセンテージ値を使用する場合、パーセンテージは親ではなく現在のオブジェクトの寸法を表します。

問題は明らかです。CSS3 アニメーションを使用transform: translate3d()し、動的にサイズ変更可能な親の寸法内で現在のオブジェクトを移動する必要がある場合、その方法がわかりません。例: usingtranslate3d(100%, 0, 0)は、オブジェクトを含むブロックではなく、現在のオブジェクトの物理的な幅だけオブジェクトを移動します。

親の動的に変化する次元を取得する方法について何かアイデアをください。または、ハードウェアアクセラレーションを使用して、現在のオブジェクトを親内で変換する方法はtranslate3d()?

Mozilla Developer Network は次のことを確認しています:パーセンテージ (トランジション内) は境界ボックスのサイズを参照します。

回避策はありますか?

4

4 に答える 4

0

固定値なしで Z 軸を使用するには、次を使用します。

transform: rotateY(90deg) translateX(-50%) rotateY(-90deg);

移動する前にオブジェクトを回転させ、再度回転させて位置を正規化します。Google Chrome でテスト済み。

于 2016-05-06T23:38:16.970 に答える