旋转相册制作css
旋转相册制作CSS
要实现一个旋转相册效果,可以通过CSS的transform和动画属性实现。以下是完整的实现方法:

基础HTML结构
<div class="photo-album">
<div class="photo"><img src="image1.jpg"></div>
<div class="photo"><img src="image2.jpg"></div>
<div class="photo"><img src="image3.jpg"></div>
<div class="photo"><img src="image4.jpg"></div>
</div>
核心CSS代码
.photo-album {
position: relative;
width: 300px;
height: 300px;
margin: 50px auto;
transform-style: preserve-3d;
animation: rotate 15s infinite linear;
}
.photo {
position: absolute;
width: 100%;
height: 100%;
opacity: 0.9;
transition: all 0.5s;
}
.photo:hover {
opacity: 1;
transform: scale(1.1);
}
.photo:nth-child(1) {
transform: rotateY(0deg) translateZ(200px);
}
.photo:nth-child(2) {
transform: rotateY(90deg) translateZ(200px);
}
.photo:nth-child(3) {
transform: rotateY(180deg) translateZ(200px);
}
.photo:nth-child(4) {
transform: rotateY(270deg) translateZ(200px);
}
@keyframes rotate {
from {
transform: rotateY(0deg);
}
to {
transform: rotateY(360deg);
}
}
实现要点
transform-style: preserve-3d保持3D变换效果- 每张照片通过
rotateY设置不同角度,形成环状排列 translateZ(200px)控制照片与中心的距离animation实现无限旋转效果- 悬停效果通过
:hover和transition实现平滑缩放
扩展效果
增加更多照片时,需要均匀分配角度:
/* 6张照片的示例 */
.photo:nth-child(1) { transform: rotateY(0deg) translateZ(200px); }
.photo:nth-child(2) { transform: rotateY(60deg) translateZ(200px); }
.photo:nth-child(3) { transform: rotateY(120deg) translateZ(200px); }
/* 其余照片角度依次增加60度 */
响应式调整
可通过媒体查询调整尺寸:
@media (max-width: 600px) {
.photo-album {
width: 200px;
height: 200px;
}
.photo {
transform: translateZ(150px);
}
}







