transform-style: flat | preserve-3d;//设置在父元素
使用方法:
transform : rotate3d(45deg,45deg,45deg);
transform : rotateX(45deg);
transform : rotateY(45deg);
transform : rotateZ(45deg);
transform: translate3d(50px,50px 50px); transform: translateZ(tz)
transform: translate3d(100px,100px,100px);
perspective: 200px;描述:CSS3 3D transform的透视点是在浏览器的前方,translateZ的功能就是让元素在自己的眼前或近或远.
变形元素上定义[transform]:每个子元素都有自己的透视点,看到一样
#darkred .box {
background-color: darkred;
transform: perspective(600px) rotateY(45deg);
}
父元素上定义:整个父元素作为透视节点,看到的方块不同
#darkblue {
perspective: 600px;
}
perspective-origin: 0 0;
视点聚点:默认就是所看舞台或元素的中心
使用方法:
transform : scaleZ(0.2); transform : scale3d(0.1,0.2,0.2);
transform: scaleZ(2) rotateX(45deg); transform: scaleZ(2) rotateY(45deg); transform: scale3d(0.5,0.5,2) rotateX(45deg);
transform : matrix3d(sx, 0, 0, 0, 0, sy, 0, 0, 0, 0, sz, 0, 0, 0, 0, 1) ;
transform: matrix3d(2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 1);
transform: matrix3d(2, 0, 0, 0, 2, 2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 1);
transform: matrix3d(1, 0, 0, 0, 0, 1, 0, 0, 2, 0, 1, 0, 0, 0, 0, 1);
transform: matrix3d(1, 2, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);
transform: matrix3d(1, 0, 0, 0, 0, 1, 0, 0, 0, 2, 1, 0, 0, 0, 0, 1);
transform: matrix3d(1, 0, 2, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1);
transform: matrix3d(1, 0, 0, 0, 0, 1, 2, 0, 0, 1, 1, 0, 0, 0, 0, 1);

<div id="stage" class="stage_area">
<div id="container" class="container" style="-webkit-transform: rotateY(80deg)"><div>
</div>
.stage_area {
width: 900px;
min-height: 100px;
margin-left: auto;
margin-right: auto;
padding: 100px 50px;
perspective: 500px;
position: relative;
}
.container {
width: 128px;
height: 100px;
margin-left: -64px;
transition: transform 1s;
transform-style: preserve-3d;
position: absolute;
left: 50%;
border: 1px #f00 solid;
}
.piece {
width: 128px;
box-shadow: 0 1px 3px rgba(0,0,0,.5);
transition: opacity 1s, transform 1s;
position: absolute;
bottom: 0;
}
var htmlPic = '', arrayPic = [1, 2, 3, 4, 5, 6, 7, 8, 9], rotate = 360 / arrayPic.length;
arrayPic.forEach(function(i) {
htmlPic = htmlPic + '<img id="piece'+ i +'" src="img/mm/mm'+ i +'.jpg" class="piece" />';
});
var c = $("#container"), i = 0,r = 64 / Math.tan((rotate / 2 / 180) * Math.PI);
c.html(htmlPic).click(function(){
//this.style["WebkitTransform"] = "rotateY("+ (-1 * rotate * ++i) +"deg)";
$(this).css('WebkitTransform',"rotateY("+ (-1 * rotate * ++i) +"deg)");
});
arrayPic.forEach(function(i, j) {
$("#piece" + i).css('WebkitTransform',"rotateY("+ j * rotate +"deg) translateZ("+ (r+40) +"px)");
});