怎么用css实现3d动画特效
小编给大家分享一下怎么用css实现3d动画特效,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!
属性
perspective:透距离,单位像素(值越小,透视距离越近,效果越明显):设置父元素上
perspective-origin:设置透视点的位置
transform-style:指定某元素的子元素是位于三维空间内,取值:flat|preserve-3d
1.1.1思路
(1)有三个p,一起放到一个盒子里面。
(2)为其盒子设置样式
.cube{
width:200px;
height:300px;
transform-style:preserve-3d;
margin:100pxauto;
position:relative;
transform:rotateX(30deg);
border-radius:50%;
padding:60px;
}
(3)为其每个p设置样式
.mian{
width:200px;
height:300px;
background-image:url(1.jpg);
background-position:400px0;
position:absolute;
background:url(aka.jpg);
border:1pxsolid#ccc;
transition:2s;
}
/*.mian1:hover{
transform-origin:right;
transform:rotateY(-60deg);
}*/
.mian1{
transform-origin:right;
transform:translateX(-200px)rotateY(45deg);
background-position:00;
}
.mian2{
background-position:400px0;
}
.mian3{
transform-origin:left;
transform:translateX(200px)rotateY(45deg);
background-position:200px0;
}
(4)为其设置动画
.mian3:hover{
transform:translateX(200px)rotateY(0deg);
}
.mian1:hover{
transform:translateX(-200px)rotateY(0deg);
}
1.1.1源码:
.container{
width:1000px;
height:650px;
perspective:2000px;
border:1pxsolidtransparent;
overflow:hidden;
margin:0auto;
perspective-origin:10%20%;
}
.cube{
width:200px;
height:300px;
transform-style:preserve-3d;
margin:100pxauto;
position:relative;
transform:rotateX(30deg);
border-radius:50%;
padding:60px;
}
.mian{
width:200px;
height:300px;
background-image:url(1.jpg);
background-position:400px0;
position:absolute;
background:url(aka.jpg);
border:1pxsolid#ccc;
transition:2s;
}
/*.mian1:hover{
transform-origin:right;
transform:rotateY(-60deg);
}*/
.mian1{
transform-origin:right;
transform:translateX(-200px)rotateY(45deg);
background-position:00;
}
.mian2{
background-position:400px0;
}
.mian3{
transform-origin:left;
transform:translateX(200px)rotateY(45deg);
background-position:200px0;
}
.mian3:hover{
transform:translateX(200px)rotateY(0deg);
}
.mian1:hover{
transform:translateX(-200px)rotateY(0deg);
}