div+css实现三维相机拍摄照片旋转动画效果代码

代码语言:html

所属分类:三维

代码描述:div+css实现三维相机拍摄照片旋转动画效果代码,拍摄时还有闪光效果。

代码标签: div css 三维 相机 拍摄 照片 旋转 动画

下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开

<!DOCTYPE html>
<html lang="en" >

<head>
 
<meta charset="UTF-8">
 
<link type="text/css" rel="stylesheet" href="//repo.bfw.wiki/bfwrepo/css/normalize.5.0.css">
 
 
<style>
@keyframes main {
                        0% {
                                transform: rotateY(20deg) rotateX(-20deg) rotatez(0deg) translateY(0px);
                        }
                        2% {
                                transform: rotateY(20deg) rotateX(-20deg) rotatez(0deg) translateY(0px);
                        }
                        7% {
                                transform: rotateY(-70deg) rotateX(40deg) rotatez(0deg) translateY(-160px);
                        }
                        9% {
                                transform: rotateY(10deg) rotateX(0deg) rotatez(0deg) translateY(-140px);
                        }
                        10% {
                                transform: rotateY(-10deg) rotateX(0deg) rotatez(0deg) translateY(-140px);
                        }
                        12% {
                                transform: rotateY(-10deg) rotateX(0deg) rotatez(0deg) translateY(-140px);
                        }
                        13% {
                                transform: rotateY(10deg) rotateX(0deg) rotatez(0deg) translateY(-140px);
                        }
                        15% {
                                transform: rotateY(220deg) rotateX(-40deg) rotatez(0deg) translateY(-40px) translateZ(-150px);
                        }
                        17% {
                                transform: rotateY(220deg) rotateX(-40deg) rotatez(0deg) translateY(-40px) translateZ(-150px);
                        }
                        18% {
                                transform: rotateY(200deg) rotateX(-40deg) rotatez(0deg) translateY(-40px) translateZ(-150px);
                        }
                        20% {
                                transform: rotateY(370deg) rotateX(-50deg) rotatez(0deg) translateY(-40px) translateZ(-150px);
                        }
                        21% {
                                transform: rotateY(350deg) rotateX(-50deg) rotatez(0deg) translateY(-40px) translateZ(-150px);
                        }
                        23% {
                                transform: rotateY(350deg) rotateX(-50deg) rotatez(0deg) translateY(-40px) translateZ(-150px);
                        }
                        24% {
                                transform: rotateY(340deg) rotateX(-50deg) rotatez(0deg) translateY(-40px) translateZ(-150px);
                        }
                        26% {
                                transform: rotateY(480deg) rotateX(-60deg) rotatez(0deg) translateY(50px) translateZ(-250px) translateX(40px);
                        }
                        27% {
                                transform: rotateY(475deg) rotateX(-60deg) rotatez(0deg) translateY(50px) translateZ(-250px) translateX(40px);
                        }
                        30% {
                                transform: rotateY(475deg) rotateX(-60deg) rotatez(0deg) translateY(50px) translateZ(-250px) translateX(40px);
                        }
                        31% {
                                transform: rotateY(465deg) rotateX(-60deg) rotatez(0deg) translateY(50px) translateZ(-250px) translateX(40px);
                        }
                        37% {
                                transform: rotateY(900deg) rotateX(10deg) rotatez(0deg) translateY(-20px) translateZ(-250px) translateX(40px);
                        }
                        38% {
                                transform: rotateY(895deg) rotateX(10deg) rotatez(0deg) translateY(-20px) translateZ(-250px) translateX(40px);
                        }
                        40% {
                                transform: rotateY(895deg) rotateX(10deg) rotatez(0deg) translateY(-20px) translateZ(-250px) translateX(40px);
                        }
                        41% {
                                transform: rotateY(885deg) rotateX(10deg) rotatez(0deg) translateY(-20px) translateZ(-250px) translateX(40px);
                        }
                        42% {
                                transform: rotateY(895deg) rotateX(10deg) rotatez(0deg) translateY(-20px) translateZ(-250px) translateX(40px);
                        }
                        45% {
                                transform: rotateY(895deg) rotateX(10deg) rotatez(0deg) translateY(-20px) translateZ(-250px) translateX(40px);
                        }
                        46% {
                                transform: rotateY(885deg) rotateX(10deg) rotatez(0deg) translateY(-20px) translateZ(-250px) translateX(40px);
                        }
                        47% {
                                transform: rotateY(895deg) rotateX(10deg) rotatez(0deg) translateY(-20px) translateZ(-250px) translateX(40px);
                        }
                        50% {
                                transform: rotateY(895deg) rotateX(10deg) rotatez(0deg) translateY(-20px) translateZ(-250px) translateX(40px);
                        }
                        51% {
                                transform: rotateY(895deg) rotateX(15deg) rotatez(0deg) translateY(-20px) translateZ(-250px) translateX(40px);
                        }
                        52% {
                                transform: rotateY(895deg) rotateX(10deg) rotatez(0deg) translateY(-20px) translateZ(-250px) translateX(40px);
                        }
                        60% {
                                transform: rotateY(895deg) rotateX(10deg) rotatez(0deg) translateY(-20px) translateZ(-250px) translateX(40px);
                        }
                        70% {
                                transform: rotateY(20deg) rotateX(-20deg) rotatez(0deg) translateY(0px);
                        }
                       
                       
                }
               
                @keyframes photos {
                        0% {
                                left: -390px;
                        }
                        33% {
                                left: -390px;
                        }
                        34% {
                                left: -260px;
                        }
                        40% {
                                left: -260px;
                        }
                        41% {
                                left: -130px;
                        }
                        45% {
                                left: -130px;
                        }
                        46% {
                                left: 0px;
                        }
                        50% {
                                left: 0px;
                                top: 0px;
                        }
                        51% {
                                left: 0px;
                                top: 90px;
                        }
                        60% {
                                left: 0px;
                                top: 90px;
                        }
                        70% {
                                left: -390px;
                                top: 0px;
                        }
                       
                }
               
                @keyframes flash {
                        0% {
                                opacity: 0;
                        }
                        16% {
                                opacity: 0;
                        }
                        16.3% {
                                opacity: 1;
                        }
                        16.5% {
                                opacity: 0;
                        }
                        16.8% {
                                opacity: 1;
                        }
                        17% {
                                opacity: 0;
                        }
                        21% {
                                opacity: 0;
                        }
                        21.3% {
                                opacity: 1;
                        }
                        21.5% {
                                opacity: 0;
                        }
                        21.8% {
                                opacity: 1;
                        }
                        22% {
                                opacity: 0;
                        }
                        27% {
                                opacity: 0;
                        }
                        27.3% {
                                opacity: 1;
                        }
                        27.5% {
                                opacity: 0;
                        }
                        27.8% {
                                opacity: 1;
                        }
                        28% {
                                opacity: 0;
                        }
                       
                }
 
                .flash-overlay {
                        position: fixed;
                        width: 100%;
                        height: 100%;
                        z-index: 100000;
                        background: #fff;
                        left: 0;
                        top: 0;
                        opacity: 0;
                        animation: flash infinite 30s ease;
                }
               
                body {
                        background: #333;
                }
               
                .papers {
                        width: 120px;
                        height: 170px;
                        position: absolute;
                        left: 50%;
                        top: 50%;
                        perspective: 500px;
                        transform-style: preserve-3d;
                        margin: -100px 0 0 -100px;
                }
                .paper {
                        width: 200px;
                        height: 240px;
                        transform-style: preserve-3d;
                        transform: rotateX(70deg) rotateZ(40deg) translateZ(-100px);
                        position: absolute;
                        left: 0;
                        top: 0;
                        box-shadow: 2px 1px 2px rgba(0,0,0,0.2);
                        background: url(//repo.bfw.wiki/bfwrepo/images/photo/1.jpg) no-repeat center center #fdfdfd;
                        z-index: 3;
                        background-size: 180px 220px;
                }
                .paper.two {
                        transform: rotateX(70deg) rotateZ(45deg) translateZ(-103px);
                        z-index: 2;
                }
                .paper.three {
                        transform: rotateX(70deg) rotateZ(70deg) translateX(40px) translateZ(-106px);
                        z-index: 1;
                        background: url(//repo.bfw.wiki/bfwrepo/images/photo/2.jpg) no-repeat center center #fdfdfd;
                }
               
                .scene {
                        z-index: 100000;
                        width: 200px;
                        height: 130px;
                        position: absolute;
                        left: 50%;
                        top: 50%;
                        margin: -100px 0 0 -65px;
                        perspective: 500px;
                        transform-style: preserve-3d;
                }
                .camera {
                        width: 200px;
                        height: 130px;
                        position: absolute;
                        left: 0;
                        top: 40px;
                        transform-style: preserve-3d;
                        transform: rotateY(20deg) rotateX(-20deg) rotatez(0deg);
                        animation: main infinite 30s ease;
                        transform-origin: 50% 50%;
                }
                .camera .body {
                        width: 200px;
                        height: 130px;
                        position: absolute;
                        left: 0;
                        top: 0;
                        transform-style: preserve-3d;
                }
                .body .face {
                        position: absolute;
                        left: 0px;
                        top: 0px;
                        transform-style: preserve-3d;
                        transform-origin: 50% 50% 20px;
                }
                .back.face {
                        width: 200px;
                        height: 130px;
                        background: #ddd;
                        border-radius: 12px;
                        transform: translateZ(-20px);
                }
                .front.face {
                        width: 200px;
                        height: 130px;
                        background: #ddd;
                        border-radius: 12px;
                        transform: translateZ(20px);
                }
                .left.face {
                        width: 40px;
                        height: 110px;
                        background: #bbb;
                        border-radius: 0;
                        transform: translateZ(-10px) translateY(10px) rotateY(90deg) scaleX(1.5);
                }
                .right.face {
                        width: 40px;
                        height: 110px;
                        background: #bbb;
                        border-radius: 0;
                        transform: translateZ(-20px) translateY(10px) translateX(200px) rotateY(90deg);
                }
                .top.face {
                        width: 178px;
                        height: 40px;
                        background: #eee;
                        border-radius: 0;
                        transform: translateZ(-20px) translateX(10px) rotateX(-90deg);
                }
                .bottom.face {
                        width: 178px;
                        height: 40px;
                        background: #eee;
                        border-radius: 0;
                        transform: translateZ(-20px) translateX(10px) translateY(130px) rotateX(-90deg);
                }
                .radiuses .left-top {
                        position: absolute;
                        top: 0;
                        left: 0;
                        transform-style: preserve-3d;
                        transform: translateZ(10px) translateY(-10px) translateX(-18px) rotateY(90deg) rotateX(90deg) scaleX(1.5);
                }
                .radiuses .left-top>div {
                        width: 40px;
                        height: 5px;                    
                }
               
                .radiuses .right-top {
                        position: absolute;
                        top: 0;
                        left: 0;
                        transform-style: preserve-3d;
                        transform: translateZ(0px) translateY(-10px) translateX(177px) rotateZ(0deg) rotateY(270deg) rotateX(90deg);
                }
                .radiuses .right-top>div {
                        width: 40px;
                        height: 5px;
                }
               
                .radiuses .left-bottom {
                        position: absolute;
                        top: 0;
                        left: 0;
                        transform-style: preserve-3d;
                        transform: translateZ(10px) translateY(120px) translateX(-18px) rotateZ(0deg) rotateY(270deg) rotateX(270deg) scaleX(1.5);
                }
                .radiuses .left-bottom>div {
                        width: 40px;
                        height: 5px;
                }
               
                .radiuses .right-bottom {
                        position: absolute;
                        top: 0;
                        left: 0;
                        transform-style: preserve-3d;
                        transform: translateZ(0px) translateY(120px) translateX(177px) rotateZ(0deg) rotateY(90deg) rotateX(270deg);
                }
                .radiuses .right-bottom>div {
                        width: 40px;
                        height: 5px;
                }
               
                .radiuses .one {
                        background: #e3e3e3;
                        transform: rotateX(18deg);
                }
                .radiuses .two {
                        background: #D9d9d9;
                        transform: rotateX(36deg) translateZ(-2px) translateY(-1px);
                }
                .radiuses .three {
                        background: #cfcfcf;
                        transform: rotateX(54deg) translateZ(-5px) translateY(-2px);
                }
                .radiuses .four {
                        background: #c5c5c5;
                        transform: rotateX(72deg) translateZ(-8px) translateY(-6px);
                }
               
                .objective {
                        width: 90px;
                        height: 90px;
                        background: #aaa;
                        border-radius: 100%;
                        position: absolute;
                        left: 50%;
                        top: 50%;
                        margin: -45px 0 0 -10px;
                        transform-style: preserve-3d;
                        transform: translateZ(4px);
                }
                .objective:before {
                        content: "";
                        background: #aaa;
                        border-radius: 100%;
                        position: absolute;
                        left: 0;
                        top: 0;
                        width: 90px;
                        height: 90px;
                        transform: translateZ(-3px);
                }
                .objective:after {
                        content: "";
                        box-sizing: border-box;
                        border: 10px solid #ccc;
                        border-radius: 100%;
                        position: absolute;
                        left: 0;
                        top: 0;
                        width: 90px;
                        height: 90px;
                        transform: translateZ(5px);
                }
               
                .objective.small:before {
                        background: #aaa;
                        transform: translateZ(-3px);
                }
               
                .objective.small {
                        transform: translateZ(13px) scale(0.87);
                }
                .objective.small:after {
                        transform: translateZ(4px)
                }
                .objective.small .depth {
                        height: 8px;
                        width: 10px;
                        margin: -10px 0 0 -4px;
                        background: #aaa;
                        top: 50px;
                        left: 45px;
                }
                .objective.small .lens {
                        width: 70px;
                        height: 70px;
                        position: absolute;
                        left: 10px;
                        top: 10px;
                        background: #222;
                        border-radius: 100%;
                        transform: translateZ(3px);
                        transform-style: preserve-3d;
                }
                .objective.small .lens-inner {
                        width: 50px;
                        height: 50px;
                        border-radius: 100%;
                        position: absolute;
                        left: 10px;
                        top: 10px;
                        background: #111;
                        transform: translateZ(2px);
                        box-shadow: inset 0 -1px 10px rgba(108,0,144,1);
                        background-image: linear-gradient(0deg, rgba(255,255,255,0.23) 10%,rgba(0,0,0,0) 100%), linear-gradient(to bottom, rgba(63,74,226,0.63) 0%,rgba(0,0,0,0) 100%),radial-gradient(ellipse at 40px 40px, rgba(0,0,0,1) 0%,rgba(0,0,0,0) 50%);
                }
                .objective.small .lens-inner .one {
                        width: 20px;
                        height: 20px;
                        background-image: linear-gradient(180deg, rgba(255,255,255,0.1) 0%,rgba(0,0,0,0) 100%);
                        border-radius: 100%;
                        position: absolute;
                        left: 15px;
                        top: 15px;
                }
                .objective.small .lens-inner .two {
                        width: 10px;
                        height: 10px;
                        background: rgba(255,255,255,0.07);
          .........完整代码请登录后点击上方下载按钮下载查看

网友评论0