rotate() 顺时针旋转
scale() 缩放
skew() 倾斜
transform()移动
<style media="screen"> .box{ width: 20px; height: 20px; background-color: red; transform: rotate(45deg) scale(2) skew(29deg,30deg) translate(20px,20px);
}
</style> <div
class="box"> </div>
perspective (视距,景深) :眼睛距离物体的距离
perspective-origin (视点):眼睛所在位置,默认为中心
(1)transform-origin:center(默认值,等价于:center center/ 50% 50%)
(2)transform-origin:top(等价于:top center/center top)
(3)transform-origin:bottom(等价于:bottom center/center bottom)
(4)transform-origin:right(等价于:right center/center right)
(5)transform-origin:left(等价于:left center/center left)
(6)transform-origin:top left(等价于:left top)
同理,还可以设置为:transform-origin:top right(右上角为原点)、transform-origin:bottom right(右下角为原点)、transform-origin:bottom left(左下角为原点)
transfrom
(1) rotateX() rotateY() rotateZ()
(2) transform-origin:旋转的基轴 top bottom left right center
(3) transform-style:preserve-3d;定义3D空间
(4) backface-visibility: hidden;背面不可见
<div class="cam">
<div class="box">
<div class=" card box1"></div>
<div class=" card box2"></div>
</div>
</div>
body{
background: #e6fff9;
}
.cam{
perspective: 800px; 视距是800px
transform-style: preserve-3d;打造3D空间
perspective-origin:center; 视角是在正中间
}
.box{
transform-style: preserve-3d;
perspective-origin:center;
width: 200px;
height: 200px;
margin: 100px auto;
position: relative; 相对定位
transition:transform 2s;
}
.box:hover{
transform: rotateY(180deg);
}
.box .card{
width: 200px;
height: 200px;
font-size: 150px;
color: white;
line-height: 200px;
text-align: center;
position: absolute; 绝对定位
}
.box1{
background:url(./img/1p.JPG) no-repeat ;
background-size: cover;
}
.box2{
background:url(./img/2p.JPG) no-repeat;
background-size: cover;
transform: rotateY(180deg);
backface-visibility: hidden; 背面不可见
}
<div class="camer">
<div class="wutai">
<div class="page top"></div>
<div class="page bottom"></div>
<div class="page left"></div>
<div class="page right"></div>
<div class="page front"></div>
<div class="page back"></div>
</div>
</div>
body{
background: #eadcec;
}
.camer{
perspective: 800px;
width: 300px;
margin: 100px auto;
}
.wutai{
width: 300px;
height: 300px;
position: relative;
transform-style: preserve-3d;
transform: rotateX(30deg) rotateY(30deg);
-webkit-animation:bianhuan 5s infinite linear;
}
.page{
position: absolute;
width: 300px;
height: 300px;
opacity: 0.9;
}
.page.left{
background:url(img/1.jpg) no-repeat;
background-size: cover;
transform: rotateY(-90deg) translateZ(150px);
}
.page.right{
background:url(img/2.jpg) no-repeat;
background-size: cover;
transform: rotateY(90deg) translateZ(150px);
}
.page.top{
background:url(img/3.jpg) no-repeat;
background-size: cover;
transform: rotateX(90deg) translateZ(150px);
}
.page.bottom{
background:url(img/4.jpg) no-repeat;
background-size: cover;
transform: rotateX(-90deg) translateZ(150px);
}
.page.front{
background:url(img/5.jpg) no-repeat;
background-size: cover;
transform: translateZ(150px);
font-size: 150px;
}
.page.back{
background:url(img/6.jpg) no-repeat;
background-size: cover;
transform: translateZ(-150px);
}
@-webkit-keyframes bianhuan{ 动画效果
0%{
-webkit-transform:rotateY(0deg);
}
50%{
-webkit-transform:rotateY(360deg);
}
51%{
-webkit-transform:rotateX(0deg);
}
100%{
-webkit-transform:rotateX(360deg);
}
}
<div class="camer">
<div id="wutai">
<div class="page"><img src="img/1.jpg" ></div>
<div class="page"><img src="img/2.jpg" ></div>
<div class="page"><img src="img/3.jpg" ></div>
<div class="page"><img src="img/4.jpg" ></div>
<div class="page"><img src="img/5.jpg" ></div>
<div class="page"><img src="img/6.jpg" ></div>
<div class="page"><img src="img/7.jpg" ></div>
<div class="page"><img src="img/8.jpg" ></div>
</div>
</div>
<div class="box">
<input type="button" value="<" id="left">
<input type="button" value=">" id="right">
</div>
body{
background: #f2ded3;
}
.camer{
width: 400px;
perspective:800px;
margin:150px auto;
transform:rotateX(-10deg) rotateY(0deg);
}
wutai{
width: 200px;
height: 100px;
transform-style: preserve-3d;
position: relative;
transition: all 1s;
}
.page{
width: 200px;
height: 100px;
position: absolute;
}
img{
width: 200px;
height: 100px;
}
.box{
width: 200px;
background-color: red;
margin-left: 460px;
}
.box #left{
float: left;
width: 50px;
height: 30px;
background:#199ef2;
border: 1px;
color: white;
}
.box #right{
float: right;
width: 50px;
height: 30px;
background:#199ef2;
border: 1px;
color: white;
}
window.onload=function(){
var mystyle=document.getElementById("mystyle");
var stylestr="";
//开始做多边形
for(var i=0;i<9;i++){
stylestr+=".page:nth-last-of-type("+(i+1)+"){transform:rotateY("+(60*i)+"deg)translateZ(173px);}"
}
mystyle.innerHTML=stylestr;
var wutai=document.getElementById("wutai");
var d=0;
var left=document.getElementById("left");
var right=document.getElementById("right");
left.onclick=function(){
d--;
wutai.style.transform="rotateY("+70*d+"deg)";
}
right.onclick=function(){
d++;
wutai.style.transform="rotateY("+70*d+"deg)"
}
}
做了这几个案例不知道有没有发现想要做一个效果首先要有一个大的div来设置视距大小其次再套一个div来设置transform的3D效果最后再加入自己想要实现的效果。
原文:http://www.cnblogs.com/underline-/p/6385721.html