我一直在使用CSS尝试创建一个3D盒子,你可以使用纯JavaScript选择面。
它只是改变盒子div的className,并使用transition属性在位置之间平滑过渡。
这里有一个jsfiddle展示了一个工作示例 http://jsfiddle.net/synthet1c/VdDmA/1/ 目前看起来很酷,但它并不完全按照我想要的方式运行... 有人知道如何在过渡时保持盒子的稳定吗?当前,如果面从360度旋转到90度,则面将以错误方向旋转270度。我知道为什么会这样做,但无法找到解决方法。
我已经添加了所有浏览器前缀,但只在Firefox上使用过。
感谢任何建议,
它只是改变盒子div的className,并使用transition属性在位置之间平滑过渡。
这里有一个jsfiddle展示了一个工作示例 http://jsfiddle.net/synthet1c/VdDmA/1/ 目前看起来很酷,但它并不完全按照我想要的方式运行... 有人知道如何在过渡时保持盒子的稳定吗?当前,如果面从360度旋转到90度,则面将以错误方向旋转270度。我知道为什么会这样做,但无法找到解决方法。
我已经添加了所有浏览器前缀,但只在Firefox上使用过。
感谢任何建议,
安德鲁 #right, #back, #left, #front { 高度:150像素; 宽度:150像素; 位置:绝对; 边框:1像素实心 rgba(200,200,200,0.7); 背景颜色:半透明蓝色(rgba(0,0,255,0.5)); 外边距:0像素; }
.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';
}