私はCSSで遊んでいて、バニラJavaScriptで顔を選択できる3Dボックスを作成しようとしています。
ボックスdivのclassNameを変更し、transitionプロパティを使用して場所間をスムーズに移行するだけです。
これが実際の例を示すjsfiddleですhttp://jsfiddle.net/synthet1c/VdDmA/1/
現時点ではかっこいいように見えますが、私が望むように動作しているわけではありません...移行中のボックスをしっかりと保つ方法を知っている人はいますか?現在、面が360度から90度になると、面は間違った方向に270度回転します。なぜそれが行われているのかは理解していますが、回避策を講じることはできません。
すべてのブラウザプレフィックスを追加しましたが、Firefoxでのみ使用しました。
アドバイスを応援します、
アンドリュー#right、#back、#left、#front {高さ:150px; 幅:150px; 位置:絶対; ボーダー:1pxソリッドrgba(200,200,200,0.7); 背景色:rgba(0,0,255,0.5); マージン:0px; }
.right{
transform: rotateY(90deg) translatez(75px) translatex(-75px);
transition: all 4s;
}
.back{
transform: rotateY(180deg) translatez(0px) translatex(0px);
transition: all 4s;
}
.left{
transform: rotateY(270deg) translatez(75px) translatex(70px);
transition: all 4s;
}
.front{
transform: rotateY(0deg) translatez(150px) translatex(0px);
transition: all 4s;
}
var id = function(elem){
var theId = document.getElementById(elem);
return theId;
}
function button1(){
id('front').className = 'front';
id('right').className = 'right';
id('back').className = 'back';
id('left').className = 'left';
}
function button2(){
id('front').className = 'right';
id('right').className = 'back';
id('back').className = 'left';
id('left').className = 'front';
}
function button3(){
id('front').className = 'back';
id('right').className = 'left';
id('back').className = 'front';
id('left').className = 'right';
}
function button4(){
id('front').className = 'left';
id('right').className = 'front';
id('back').className = 'right';
id('left').className = 'back';
}