<…">
当前位置:首页 > CSS

css立体相册制作

2026-01-08 18:46:01CSS

制作CSS立体相册

使用CSS3的3D变换和过渡效果可以创建一个立体相册。以下是一个基本的实现方法。

HTML结构

<div class="photo-album">
  <div class="photo">照片1</div>
  <div class="photo">照片2</div>
  <div class="photo">照片3</div>
  <div class="photo">照片4</div>
</div>

CSS样式

.photo-album {
  perspective: 1000px;
  width: 300px;
  height: 200px;
  position: relative;
  margin: 100px auto;
}

.photo {
  position: absolute;
  width: 100%;
  height: 100%;
  background-size: cover;
  background-position: center;
  border: 5px solid white;
  box-shadow: 0 0 10px rgba(0,0,0,0.3);
  transition: transform 1s;
  transform-style: preserve-3d;
}

/* 设置每张照片的初始位置和旋转角度 */
.photo:nth-child(1) {
  transform: rotateY(0deg) translateZ(200px);
  background-color: #ff9999;
}

.photo:nth-child(2) {
  transform: rotateY(90deg) translateZ(200px);
  background-color: #99ff99;
}

.photo:nth-child(3) {
  transform: rotateY(180deg) translateZ(200px);
  background-color: #9999ff;
}

.photo:nth-child(4) {
  transform: rotateY(270deg) translateZ(200px);
  background-color: #ffff99;
}

/* 悬停效果 */
.photo-album:hover .photo {
  transform: rotateY(0deg) translateZ(200px);
}

添加交互效果

为了让相册可以手动旋转,可以添加JavaScript控制:

let currentAngle = 0;
const album = document.querySelector('.photo-album');
const photos = document.querySelectorAll('.photo');

function rotateAlbum(angle) {
  currentAngle = angle;
  photos.forEach((photo, index) => {
    photo.style.transform = `rotateY(${currentAngle + index * 90}deg) translateZ(200px)`;
  });
}

// 添加按钮控制
document.getElementById('prev').addEventListener('click', () => {
  rotateAlbum(currentAngle - 90);
});

document.getElementById('next').addEventListener('click', () => {
  rotateAlbum(currentAngle + 90);
});

优化和扩展

添加背景图片代替纯色背景:

.photo:nth-child(1) {
  background-image: url('photo1.jpg');
}

调整动画缓动效果:

.photo {
  transition: transform 1s cubic-bezier(0.25, 0.1, 0.25, 1);
}

添加响应式设计:

@media (max-width: 600px) {
  .photo-album {
    perspective: 500px;
  }
  .photo {
    transform: rotateY(var(--angle)) translateZ(100px);
  }
}

这个实现创建了一个基本的3D立体相册,照片排列在立方体的四个面上,悬停时会展开,也可以通过按钮控制旋转。可以根据需要添加更多照片或调整样式。

css立体相册制作

标签: 相册制作css
分享给朋友:

相关文章

react 如何引入css

react 如何引入css

在 React 中引入 CSS 的方法 React 提供了多种引入 CSS 的方式,可以根据项目需求选择合适的方法。以下是常见的几种方式: 内联样式 内联样式直接在组件中通过 style 属性定义,…

css制作

css制作

CSS 基础语法 CSS(层叠样式表)用于控制网页的样式和布局。其基本语法由选择器和声明块组成。选择器指定要样式化的HTML元素,声明块包含一个或多个属性-值对,用花括号 {} 包裹。 selec…

css网页制作

css网页制作

CSS网页制作基础 CSS(层叠样式表)用于控制网页的视觉表现,包括布局、颜色、字体等。以下是核心知识点: 选择器与样式规则 /* 标签选择器 */ p { color: #333;…

css网页制作教程

css网页制作教程

CSS网页制作教程 CSS(层叠样式表)是用于控制网页外观和布局的核心技术。以下是CSS网页制作的关键步骤和技巧: 基础语法与引入方式 CSS规则由选择器和声明块组成: 选择器 { 属性: 值…

css如何制作圆

css如何制作圆

使用 border-radius 属性制作圆 通过设置 border-radius 属性为元素添加圆角效果。当 border-radius 的值等于元素宽度和高度的一半时,元素会呈现圆形。 .cir…

制作css

制作css

CSS基础语法 CSS规则由选择器和声明块组成。选择器指向需要设置样式的HTML元素,声明块包含一个或多个用分号分隔的声明。每个声明由属性和值组成,用冒号分隔。 选择器 { 属性: 值;…