美文网首页Web前端之路
抖音上超火的3D立体动态相册实现代码! 给女朋友一个意外的惊喜

抖音上超火的3D立体动态相册实现代码! 给女朋友一个意外的惊喜

作者: 前端小咖 | 来源:发表于2020-09-11 19:56 被阅读0次

    前言:

    生活处处惊喜,是不是要给女朋友或者正在追求的妹子一点小惊喜呢,今天这篇文章就分享下前端代码如何实现3D立体动态相册。赶紧学会了,来制作属于我们程序员的浪漫吧!先上效果图,来引起下你们的兴趣。

    正文:

    一、新建一个index.html的文件,代码如下

    <!DOCTYPE html>

    <html lang="en" >

    <head>

    <meta charset="UTF-8">

    <title>Bubbles (CodePen Circles Challenge)</title>

    <link rel="stylesheet" href="css/style.css">

    </head>

    <body>

    <script src='js/three.min.js'></script>

    <script src='js/TweenMax.min.js'></script>

    <script src='js/dat.gui.min.js'></script>

    <script src='js/randomColor.min.js'></script>

    <script src='js/OrbitControls.js'></script>

    <script src="js/index.js"></script>

    </body>

    </html>

    二、css样式的代码

    html,

    body {

      margin: 0;

      padding: 0;

      width: 100%;

      height: 100%;

    }

    canvas {

      position: fixed;

      width: 100%;

      height: 100%;

    }

    二、css样式的代码

    @charset "utf-8";

    *{

    margin:0;

    padding:0;

    }

    body{

    /*background: url(../img/preview.png) ;*/

    max-width: 100%;

    min-width: 100%;

    height: 100%;

    background-size: cover;

    background-repeat: no-repeat;

    background-attachment: fixed;

    background-size:100% 100%;

    position: absolute;

    margin-left: auto;

    margin-right: auto;

    }

    li{

    list-style: none;

    }

    .box{

    width:200px;

    height:200px;

    background-size: cover;

    background-repeat: no-repeat;

    background-attachment: fixed;

    background-size:100% 100%;

    position: absolute;

    margin-left: 42%;

    margin-top: 22%;

    -webkit-transform-style:preserve-3d;

    -webkit-transform:rotateX(13deg);

    -webkit-animation:move 5s linear infinite;

    }

    .minbox{

    width:100px;

    height:100px;

    position: absolute;

    left:50px;

    top:30px;

    -webkit-transform-style:preserve-3d;

    }

    .minbox li{

    width:100px;

    height:100px;

    position: absolute;

    left:0;

    top:0;

    }

    .minbox li:nth-child(1){

    background: url(../img/01.png) no-repeat 0 0;

    -webkit-transform:translateZ(50px);

    }

    .minbox li:nth-child(2){

    background: url(../img/02.png) no-repeat 0 0;

    -webkit-transform:rotateX(180deg) translateZ(50px);

    }

    .minbox li:nth-child(3){

    background: url(../img/03.png) no-repeat 0 0;

    -webkit-transform:rotateX(-90deg) translateZ(50px);

    }

    .minbox li:nth-child(4){

    background: url(../img/04.png) no-repeat 0 0;

    -webkit-transform:rotateX(90deg) translateZ(50px);

    }

    .minbox li:nth-child(5){

    background: url(../img/05.png) no-repeat 0 0;

    -webkit-transform:rotateY(-90deg) translateZ(50px);

    }

    .minbox li:nth-child(6){

    background: url(../img/06.png) no-repeat 0 0;

    -webkit-transform:rotateY(90deg) translateZ(50px);

    }

    .maxbox li:nth-child(1){

    background: url(../img/1.png) no-repeat 0 0;

    -webkit-transform:translateZ(50px);

    }

    .maxbox li:nth-child(2){

    background: url(../img/2.png) no-repeat 0 0;

    -webkit-transform:translateZ(50px);

    }

    .maxbox li:nth-child(3){

    background: url(../img/3.png) no-repeat 0 0;

    -webkit-transform:rotateX(-90deg) translateZ(50px);

    }

    .maxbox li:nth-child(4){

    background: url(../img/4.png) no-repeat 0 0;

    -webkit-transform:rotateX(90deg) translateZ(50px);

    }

    .maxbox li:nth-child(5){

    background: url(../img/5.png) no-repeat 0 0;

    -webkit-transform:rotateY(-90deg) translateZ(50px);

    }

    .maxbox li:nth-child(6){

    background: url(../img/6.png) no-repeat 0 0;

    -webkit-transform:rotateY(90deg) translateZ(50px);

    }

    .maxbox{

    width: 800px;

    height: 400px;

    position: absolute;

    left: 0;

    top: -20px;

    -webkit-transform-style: preserve-3d;

    }

    .maxbox li{

    width: 200px;

    height: 200px;

    background: #fff;

    border:1px solid #ccc;

    position: absolute;

    left: 0;

    top: 0;

    opacity: 0.2;

    -webkit-transition:all 1s ease;

    }

    .maxbox li:nth-child(1){

    -webkit-transform:translateZ(100px);

    }

    .maxbox li:nth-child(2){

    -webkit-transform:rotateX(180deg) translateZ(100px);

    }

    .maxbox li:nth-child(3){

    -webkit-transform:rotateX(-90deg) translateZ(100px);

    }

    .maxbox li:nth-child(4){

    -webkit-transform:rotateX(90deg) translateZ(100px);

    }

    .maxbox li:nth-child(5){

    -webkit-transform:rotateY(-90deg) translateZ(100px);

    }

    .maxbox li:nth-child(6){

    -webkit-transform:rotateY(90deg) translateZ(100px);

    }

    .box:hover ol li:nth-child(1){

    -webkit-transform:translateZ(300px);

    width: 400px;

    height: 400px;

    opacity: 0.8;

    left: -100px;

    top: -100px;

    }

    .box:hover ol li:nth-child(2){

    -webkit-transform:rotateX(180deg) translateZ(300px);

    width: 400px;

    height: 400px;

    opacity: 0.8;

    left: -100px;

    top: -100px;

    }

    .box:hover ol li:nth-child(3){

    -webkit-transform:rotateX(-90deg) translateZ(300px);

    width: 400px;

    height: 400px;

    opacity: 0.8;

    left: -100px;

    top: -100px;

    }

    .box:hover ol li:nth-child(4){

    -webkit-transform:rotateX(90deg) translateZ(300px);

    width: 400px;

    height: 400px;

    opacity: 0.8;

    left: -100px;

    top: -100px;

    }

    .box:hover ol li:nth-child(5){

    -webkit-transform:rotateY(-90deg) translateZ(300px);

    width: 400px;

    height: 400px;

    opacity: 0.8;

    left: -100px;

    top: -100px;

    }

    .box:hover ol li:nth-child(6){

    -webkit-transform:rotateY(90deg) translateZ(300px);

    width: 400px;

    height: 400px;

    opacity: 0.8;

    left: -100px;

    top: -100px;

    }

    @keyframes move{

    0%{

    -webkit-transform: rotateX(13deg) rotateY(0deg);

    }

    100%{

    -webkit-transform:rotateX(13deg) rotateY(360deg);

    }

    }

    三、文件的目录结构,把css文件放到css文件夹里,图片放到img文件夹里。

    四、图片尺寸不会修改的,可以选择使用美图秀秀网页版很简单

    五、容易出现的问题 ,图片展示不全或展示的方向不对

    1.图片尺寸需要修改 (解决展示不全的情况)

    上图是我的图片文件夹里放的图片 ,首先01-06编号命名的图片尺寸是100x100px的大小的,1-6编号是400x400px的大小,如果效果想展示最佳,100x100px的图片是以头部特写的照片最好,因为01-06是立体照片内部小正方体的照片,1-6编号是外部正方体的照片。

    2.图片的方向需要修改(解决头朝下的问题)

    修改的方向如上图展示所示,比如第三张头就应该朝下,否则形成的效果图像会出现头是倒着的情况。

    六、放一下动态效果图

    总结:

     生活虽然总有辛酸,但是我们不应该减少去创造生活的乐趣,不断寻找属于自己的那份快乐,才应该是我们生活的态度。如果是非技术的朋友看到这篇博客,发现不会弄,可以直接留言要代码包,自己替换下图片就可以啦。

    我是小默,一名喜欢分享知识的程序员,时不时的也会荒腔走板的聊一聊电影、电视剧、音乐、漫画,这里已经有723位小伙伴在等你们啦,感兴趣的就赶紧来点击关注我把,哪里有不明白或有不同观点的地方欢迎留言!

    关注公众号:前端之家,回复3D相册代码   即可领取代码

    相关文章

      网友评论

        本文标题:抖音上超火的3D立体动态相册实现代码! 给女朋友一个意外的惊喜

        本文链接:https://www.haomeiwen.com/subject/zkbbektx.html