给冰冰用代码做一个3D旋转相册,每天亿遍忘记初恋!
前言:
520快到了,是不是要给女朋友或者正在追求的妹子一点小惊喜呢,今天这篇博客就是演示给冰冰做一个前端3D旋转相册,学会的小伙伴可以给自己的女朋友或者喜欢的女生做一个,相比几百上千的礼物,零成本的技术实现的3D选择相册又走心,还可以用来当壁纸,赶快先收藏起来!
正文:
一、新建一个index.html的文件,代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 | <! DOCTYPE html> < html > < head > < meta charset="utf-8" /> < title >css-3d旋转</ title > < link rel="stylesheet" href="css/index.css" /> </ head > < body > <!--/*外层最大容器*/--> < div class="wrap"> <!-- /*包裹所有元素的容器*/--> < div class="cube"> <!--前面图片 --> < div class="out_front"> < img src="img/1.jpg" class="pic"/> </ div > <!--后面图片 --> < div class="out_back"> < img src="img/2.jpg" class="pic"/> </ div > <!--左图片 --> < div class="out_left"> < img src="img/3.jpg" class="pic"/> </ div > < div class="out_right"> < img src="img/4.jpg" class="pic"/> </ div > < div class="out_top"> < img src="img/5.jpg" class="pic"/> </ div > < div class="out_bottom"> < img src="img/6.jpg" class="pic"/> </ div > <!--小正方体 --> < span class="in_front"> < img src="img/7.jpg" class="in_pic" /> </ span > < span class="in_back"> < img src="img/8.jpg" class="in_pic" /> </ span > < span class="in_left"> < img src="img/9.jpg" class="in_pic" /> </ span > < span class="in_right"> < img src="img/10.jpg" class="in_pic" /> </ span > < span class="in_top"> < img src="img/11.jpg" class="in_pic" /> </ span > < span class="in_bottom"> < img src="img/12.jpg" class="in_pic" /> </ span > </ div > </ div > </ body > </ html > |
二、css样式的代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 | html{ background: #000; height: 100%; } /*最外层容器样式*/ .wrap{ position: relative; position: absolute; top: 0; right: 0; bottom: 0; left: 0; width: 200px; height: 200px; margin: auto; /*改变左右上下,图片方块移动*/ } /*包裹所有容器样式*/ .cube{ width: 200px; height: 200px; margin: 0 auto; transform-style: preserve-3d; transform: rotateX(-30deg) rotateY(-80deg); -webkit-animation: rotate 20s infinite; /*匀速*/ animation-timing-function: linear; } @-webkit-keyframes rotate{ from{transform: rotateX(0deg) rotateY(0deg);} to{transform: rotateX(360deg) rotateY(360deg);} } .cube div{ position: absolute; width: 200px; height: 200px; opacity: 0.8; transition: all .4s; } /*定义所有图片样式*/ .pic{ width: 200px; height: 200px; } .cube .out_front{ transform: rotateY(0deg) translateZ(100px); } .cube .out_back{ transform: translateZ(-100px) rotateY(180deg); } .cube .out_left{ transform: rotateY(90deg) translateZ(100px); } .cube .out_right{ transform: rotateY(-90deg) translateZ(100px); } .cube .out_top{ transform: rotateX(90deg) translateZ(100px); } .cube .out_bottom{ transform: rotateX(-90deg) translateZ(100px); } /*定义小正方体样式*/ .cube span{ display: bloack; width: 100px; height: 100px; position: absolute; top: 50px; left: 50px; } .cube .in_pic{ width: 100px; height: 100px; } .cube .in_front{ transform: rotateY(0deg) translateZ(50px); } .cube .in_back{ transform: translateZ(-50px) rotateY(180deg); } .cube .in_left{ transform: rotateY(90deg) translateZ(50px); } .cube .in_right{ transform: rotateY(-90deg) translateZ(50px); } .cube .in_top{ transform: rotateX(90deg) translateZ(50px); } .cube .in_bottom{ transform: rotateX(-90deg) translateZ(50px); } /*鼠标移入后样式*/ .cube:hover .out_front{ transform: rotateY(0deg) translateZ(200px); } .cube:hover .out_back{ transform: translateZ(-200px) rotateY(180deg); } .cube:hover .out_left{ transform: rotateY(90deg) translateZ(200px); } .cube:hover .out_right{ transform: rotateY(-90deg) translateZ(200px); } .cube:hover .out_top{ transform: rotateX(90deg) translateZ(200px); } .cube:hover .out_bottom{ transform: rotateX(-90deg) translateZ(200px); } |
三、文件的目录结构,把css文件放到css文件夹里,图片放到img文件夹里。
四、图片尺寸大小随意【严格要求的话可以统一正方形尺寸大小】
五、最终动态效果图呈现:
总结:
世界上没有不存在漏洞的关系。在每种关系的开始,都有他存在的原因,而在结束时,也有必要终止他的生活。生命是可以随时终止的契约,但是爱可以在最纯净最美好的时光穿越生死。
如果是非技术的朋友看到这篇博客,发现不会弄,可以直接留言要代码包,自己替换下图片就可以啦。
我是白云,一名喜欢分享知识的程序员,感兴趣的就赶紧来点击关注我把,哪里有不明白或有不同观点的地方欢迎留言!
关注评论代码私信获取!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· 周边上新:园子的第一款马克杯温暖上架
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· 使用C#创建一个MCP客户端
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!