3D旋转动画

效果图

具体代码实现

<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>3D旋转动画</title>
<style type="text/css">
*{
    margin:0 auto;
    padding:0;
}
@keyframes rotate{
    0%{
        transform:rotateX(0deg) rotateY(0deg);
    }
    100%{
        transform:rotateX(360deg) rotateY(360deg);
    }
}
html{
    /* background:linear-gradient(#ff0 0%, #000 80%);*/
    height:100%;
}
.wrap{
    margin-top:200px;
    perspective: 1000px; /* 视图距元素的距离 相当于摄像机 */
}
.cube{
    width:200px;
    height:200px;
    position:relative;
    color:#fff;
    font-size:36px;
    font-weight:bold;
    text-align:center;
    line-height:200px;
    transform-style:preserve-3d; /* 默认flat 2D */
    transform:rotateX(-30deg) rotateY(-70deg); 
    animation:rotate 20s infinite linear; /*播放时间 播放次数为循环 缓动效果为匀速 */
}
.cube >  .photo{
    width:100%;
    height:100%;
    border:1px solid #fff;
    position:absolute;
    background-color:#333;
    opacity:.6;
    transition:transform 0.4s ease-in;
top:0px;
    left:0px;
}
.cube .out-front{
    transform: translateZ(100px);
}
.cube .out-back{
    transform: translateZ(-100px) rotateY(180deg);
}
.cube .out-left{
    transform: translateX(-100px) rotateY(-90deg);
}
.cube .out-right{ 
    transform: translateX(100px) rotateY(90deg);
}
.cube .out-top{
    transform: translateY(-100px) rotateX(90deg);
}
.cube .out-bottom{
    transform: translateY(100px) rotateX(-90deg);
}
.cube > img{
    display:block;
    width:100px;
    height:100px;
    border:1px solid black;
    background-color:#999;
    position:absolute;
    top:50px;
    left:50px;
}
.cube .in-front{
    transform: translateZ(50px);
}
.cube .in-back{
    transform: translateZ(-50px) rotateY(180deg);
}
.cube .in-left{
    transform: translateX(-50px) rotateY(-90deg);
}
.cube .in-right{
    transform: translateX(50px) rotateY(90deg);
}
.cube .in-top{
    transform: translateY(-50px) rotateX(90deg);
}
.cube .in-bottom{
    transform: translateY(50px) rotateX(-90deg);
}
.wrap:hover .out-front{
    transform: translateZ(200px);
}
.wrap:hover .out-back{
    transform: translateZ(-200px) rotateY(180deg);
}
.wrap:hover .out-left{
    transform: translateX(-200px) rotateY(-90deg);
}
.wrap:hover .out-right{
    transform: translateX(200px) rotateY(90deg);
}
.wrap:hover .out-top{
    transform: translateY(-200px) rotateX(90deg);
}
.wrap:hover .out-bottom{
    transform: translateY(200px) rotateX(-90deg);
}

</style>
</head>
<body>
<div class="wrap">
    <div class="cube">
        <img class="out-front photo" src="http://p4.qhimg.com/bdm/960_593_0/t01e71082414f50bd52.jpg"/>
        <img class="out-back photo" src="http://p0.qhimg.com/bdm/480_296_0/t01f3894323e88ea123.jpg"/>
        <img class="out-left photo" src="http://p15.qhimg.com/bdm/960_593_0/t01acc12e86173a0606.jpg"/>
        <img class="out-right photo" src="http://p6.qhimg.com/bdm/960_593_0/t0127bd4f8758c42304.jpg"/> 
        <img class="out-top photo" src="http://p6.qhimg.com/bdm/480_296_0/t01e501e8d6a74a1a1d.jpg"/>
        <img class="out-bottom photo" src="http://p1.qhimg.com/bdm/960_593_0/t01f95f85f3f4c2c938.jpg"/>

        <img class="in-front photo-in" src="http://p4.qhimg.com/bdm/960_593_0/t01e71082414f50bd52.jpg"/>
        <img class="in-back photo-in" src="http://p0.qhimg.com/bdm/480_296_0/t01f3894323e88ea123.jpg"/>
        <img class="in-left photo-in" src="http://p15.qhimg.com/bdm/960_593_0/t01acc12e86173a0606.jpg"/>
        <img class="in-right photo-in" src="http://p6.qhimg.com/bdm/960_593_0/t0127bd4f8758c42304.jpg"/>
        <img class="in-top photo-in" src="http://p6.qhimg.com/bdm/480_296_0/t01e501e8d6a74a1a1d.jpg"/>
        <img class="in-bottom photo-in" src="http://p1.qhimg.com/bdm/960_593_0/t01f95f85f3f4c2c938.jpg"/>
    </div>
</div>


</body>
</
html>

猜你喜欢

转载自www.cnblogs.com/mjtabu/p/11975262.html