当前位置:首页 > CSS

css制作立体相册

2026-03-12 03:43:36CSS

使用CSS 3D变换制作立体相册

通过CSS的transform-style: preserve-3drotateY属性可以实现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 {
  width: 300px;
  height: 200px;
  position: relative;
  transform-style: preserve-3d;
  animation: rotate 10s infinite linear;
}

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

/* 为每张照片设置不同旋转角度 */
.photo:nth-child(1) { transform: rotateY(0deg) translateZ(150px); }
.photo:nth-child(2) { transform: rotateY(90deg) translateZ(150px); }
.photo:nth-child(3) { transform: rotateY(180deg) translateZ(150px); }
.photo:nth-child(4) { transform: rotateY(270deg) translateZ(150px); }

@keyframes rotate {
  from { transform: rotateY(0deg); }
  to { transform: rotateY(360deg); }
}

添加交互效果

通过:hover伪类可以增强用户体验,当鼠标悬停时暂停动画:

.photo-album:hover {
  animation-play-state: paused;
}

.photo {
  transition: transform 0.5s;
}

.photo:hover {
  transform: scale(1.1) translateZ(180px);
  z-index: 10;
}

响应式设计考虑

为确保在不同设备上正常显示,可以添加媒体查询调整尺寸:

@media (max-width: 600px) {
  .photo-album {
    width: 200px;
    height: 150px;
  }
  .photo {
    transform-origin: center center;
  }
}

进阶效果:添加封面和阴影

通过伪元素和滤镜增强3D真实感:

css制作立体相册

.photo::before {
  content: '';
  position: absolute;
  width: 100%;
  height: 100%;
  background: rgba(0,0,0,0.1);
  transform: translateZ(-10px);
  filter: blur(5px);
}

.photo::after {
  content: '';
  position: absolute;
  bottom: -10px;
  left: 0;
  width: 100%;
  height: 10px;
  background: linear-gradient(to bottom, rgba(0,0,0,0.3), transparent);
  transform: rotateX(90deg);
  transform-origin: bottom;
}

这些技术组合可以创建出具有立体感的交互式相册效果,通过调整旋转角度、过渡时间和z轴位移可以控制3D效果的深度和动态表现。

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

相关文章

css 制作表格

css 制作表格

基础表格结构 使用HTML的<table>标签创建表格框架,搭配<tr>(行)、<th>(表头)和<td>(单元格)标签。例如: <table&…

css字体制作

css字体制作

CSS字体设置基础 在CSS中设置字体主要通过font-family属性实现,可以指定多个字体作为备选。系统会优先使用第一个可用字体。 body { font-family: "Helvetic…

css 制作石头

css 制作石头

使用CSS制作石头效果 通过CSS的border-radius、box-shadow和background属性可以模拟石头的自然外观。以下是一个简单实现: <div class="stone"…

风车制作css

风车制作css

风车制作CSS方法 使用CSS创建风车效果可以通过动画和变换属性实现。以下是一个简单的风车旋转动画示例: HTML结构 <div class="windmill"> <…

css制作栅格

css制作栅格

CSS 栅格布局基础 CSS Grid 布局是一种强大的二维布局系统,允许开发者通过行和列来设计复杂的网页布局。栅格系统由容器(grid container)和项目(grid items)组成。 定…

jquery css

jquery css

jQuery 操作 CSS 的方法 jQuery 提供了多种方法来操作元素的 CSS 样式,包括获取、设置、添加或移除样式。以下是常用的方法: 获取 CSS 属性值 使用 .css() 方法获取元素…