我一直在使用 CSS 尝试创建一个 3d 框,您可以使用 vanilla javascript 选择面部。
它只是更改盒子 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';
}