相信很多小伙伴看着短视频里的3D旋转相册很想要吧,下面就让我们来看看它的代码及使用方法!
-
效果展示
-
代码展示
1.html
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>3D立体动态相册</title>
<link rel="stylesheet" type="text/css" href="css/style.css"/>
</head>
<body>
<div id="cube">
<!--外层盒子-->
<ul>
<li>
<img src="img/1.jpg" >
</li>
<li>
<img src="img/2.jpg" >
</li>
<li>
<img src="img/3.jpg" >
</li>
<li>
<img src="img/4.jpg" >
</li>
<li>
<img src="img/5.jpg" >
</li>
<li>
<img src="img/6.jpg" >
</li>
</ul>
<!--内层盒子-->
<ol>
<li>
<img src="img/01.jpg" >
</li>
<li>
<img src="img/02.jpg" >
</li>
<li>
<img src="img/03.jpg" >
</li>
<li>
<img src="img/04.jpg" >
</li>
<li>
<img src="img/05.jpg" >
</li>
<li>
<img src="img/06.jpg" >
</li>
</ol>
</div>
</body>
</html>
2.css
/*默认样式*/
*{
margin: 0;
padding: 0;
}
ol,ul{list-style: none;}
/*外层盒子*/
#cube{
height: 200px;
width: 200px;
/* 将整个盒子至于中间 */
position: absolute;
left: 0;
top: 0;
bottom: 0;
right: 0;
margin: auto;
/* 这是旋转基点 */
transform-origin: -550px 550px 100;
/* 设置景深 */
perspective:800px;
}
#cube ul{
width: 200px;
height: 200px;
transform-style: preserve-3d;
animation: rotate1 5s linear infinite;
}
#cube ul img{
width: 200px;
height: 200px;
}
#cube ul li{
width: 200px;
height: 200px;
position: absolute;
/* 设置过渡时间 */
transition: 2s;
}
#cube ul li:nth-child(1){left: 0;top: 0;opacity: .4;transform: translateZ(100px);}
#cube ul li:nth-child(2){left: 100px;top: 0;transform: rotateY(90deg);opacity: .4;}
#cube ul li:nth-child(3){left: -100px;top: 0;transform: rotateY(-90deg);opacity: .4;}
#cube ul li:nth-child(4){left: 0;top: 100px;transform: rotateX(-90deg);opacity:.4;}
#cube ul li:nth-child(5){left: 0;top: -100px;transform: rotateX(90deg);opacity: .4;}
#cube ul li:nth-child(6){left: 0;top: 0;transform: translateZ(-100px) rotateY(180deg);opacity: .4;}
/* 内层盒子*/
#cube ol{
width: 100px;
height: 100px;
position: absolute;
left: 50px;
top: 50px;
/* 给内层盒子设置3d空间 */
transform-style: preserve-3d;
/* 设置动画 */
animation: rotate1 5s linear infinite;
}
#cube ol img{
width: 100px;
height: 100px;
}
#cube ol li{
width: 100px;
height: 100px;
position: absolute;
}
#cube ol li:nth-child(1){left: 0;top: 0;opacity: .7;transform: translateZ(50px);}
#cube ol li:nth-child(2){left: 100px;top: 0px;transform-origin: left;transform:translateZ(50px) rotateY(90deg);opacity: .7;}
#cube ol li:nth-child(3){left: -100px;top: 0px;transform-origin: right;transform:translateZ(50px) rotateY(-90deg);opacity: .7;}
#cube ol li:nth-child(4){left:0px;top: 100px;transform-origin: top;transform:translateZ(50px) rotateX(-90deg);opacity: .7;}
#cube ol li:nth-child(5){left:0px;top: -100px;transform-origin: bottom;transform:translateZ(50px) rotateX(90deg);opacity: .7;}
#cube ol li:nth-child(6){left:0px;top: 0px;transform: translateZ(-50px) rotateY(180deg);opacity: .7;}
/*外层盒子鼠标移入效果*/
#cube:hover ul li:nth-child(1){transform: translateZ(200px) scale(1.5);opacity: .6;}
#cube:hover ul li:nth-child(2){transform:rotateY(90deg) translateZ(100px) scale(1.5);opacity: .6;}
#cube:hover ul li:nth-child(3){transform:rotateY(-90deg) translateZ(100px) scale(1.5);opacity: .6;}
#cube:hover ul li:nth-child(4){transform:rotateX(-90deg) translateZ(100px) scale(1.5);opacity: .6;}
#cube:hover ul li:nth-child(5){transform:rotateX(90deg) translateZ(100px) scale(1.5);opacity: .6;}
#cube:hover ul li:nth-child(6){transform:rotateY(180deg) translateZ(200px) scale(1.5);opacity: .6;}
/*旋转动画效果*/
@keyframes rotate1{
0%{transform: rotateY(0);}
100%{transform: rotateY(360deg);}
}
- 使用方法
1.在桌面(或磁盘内)新建一个文件夹。
2.在3D相册文件夹内再新建两个文件夹和一个文本文档,分别取名为css,img,index。
3.将html下的代码复制粘贴到index中,再将index后缀名改为html。
4.在css文件夹内新建一个文本文档,取名为style,将css下的代码复制粘贴到style中,再将style后缀名改为css。
5.将12张jpg类型的照片放入img文件夹中,分别命名为01-06,1-6。(大小:只要照片宽等于高即可,推荐:01-06:100×100,1-6:200×200,序号为6的照片上下颠倒一下效果更好哦)
6.最后双击index即可。
注:IE浏览器无法呈现效果,推荐使用其他浏览器。3、4两步改的是后缀名,请检查新建文本文档是否以.txt结尾,如果不是则后缀名隐藏了。改为显示后按上述步骤即可。
因为有许多博友按步骤操作后仍有错误,所以我把资源压缩上传到百度网盘了,需要的请点击这里链接: 浪漫相册
提取码:gclr
各位老铁,点个赞再走呗,万分感谢。