HTMLCSS:超级酷炫的3D照片墙

devtools/2024/12/29 2:06:04/

这段代码创建了一个 3D 图片轮播效果,其中包含 8 张图片。图片在 3D 空间中围绕 Y 轴旋转,形成一个循环的轮播效果。CSS 的@keyframes 动画定义了图片的旋转路径,而 transform-style: preserve-3d 属性确保了 3D 效果的正确显示。每张图片通过不同的 rotateY 和 translateZ 属性定位在 3D 空间中的不同位置。

演示效果

在这里插入图片描述

HTML&CSS

html"><!DOCTYPE html>
<html lang="zh"><head><meta charset="UTF-8" /><meta name="viewport" content="width=device-width, initial-scale=1.0" /><title>公众号关注:前端Hardy</title>
</head>
<style>css">body {display: flex;justify-content: center;margin: 0;padding: 0;background: #efb3d5;}.container {position: relative;margin-top: 50px;}.stage {position: relative;width: 800px;height: 240px;margin: 20px auto;perspective: 2000px;transform-style: preserve-3d;-webkit-box-reflect: below 10px linear-gradient(transparent, rgba(239, 179, 213, 0.8));}.stage .control {position: relative;width: 100%;height: 100%;transform-style: preserve-3d;transform: translateZ(-2000px) rotateY(50deg) rotateZ(0deg);animation: rotate 30s linear infinite;}.stage .control .imgWrap {position: absolute;width: 400px;height: 400px;top: 50%;left: 50%;transform: translate(-50%, -50%);transform-style: preserve-3d;}.stage .control .imgWrap .img {position: absolute;width: 500px;height: 400px;line-height: 400px;text-align: center;font-size: 120px;top: 0;left: 0;object-fit: cover;transform-style: preserve-3d;transform-origin: 50% 50% 0px;}.stage .control .imgWrap img {width: 100%;height: 100%;object-fit: cover;border-radius: 20px;}.stage .control .imgWrap .img1 {transform: rotateY(80deg) translateZ(650px);}.stage .control .imgWrap .img2 {transform: rotateY(125deg) translateZ(650px);}.stage .control .imgWrap .img3 {transform: rotateY(170deg) translateZ(650px);}.stage .control .imgWrap .img4 {transform: rotateY(215deg) translateZ(650px);}.stage .control .imgWrap .img5 {transform: rotateY(260deg) translateZ(650px);}.stage .control .imgWrap .img6 {transform: rotateY(305deg) translateZ(650px);}.stage .control .imgWrap .img7 {transform: rotateY(350deg) translateZ(650px);}.stage .control .imgWrap .img8 {transform: rotateY(395deg) translateZ(650px);}@keyframes rotate {0% {transform: translateZ(-2000px) rotateY(0deg);}35% {transform: translateZ(-2000px) rotateY(-250deg);}70% {transform: translateZ(-2000px) rotateY(-500deg);}100% {transform: translateZ(-2000px) rotateY(-720deg);}}
</style><body><div class="container"><div class="stage"><div class="control"><div class="imgWrap"><div class="img img1"><img src="./img/p1.jpg" /></div><div class="img img2"><img src="./img/p2.jpg" /></div><div class="img img3"><img src="./img/p3.jpg" /></div><div class="img img4"><img src="./img/p4.jpg" /></div><div class="img img5"><img src="./img/p5.jpg" /></div><div class="img img6"><img src="./img/p6.jpg" /></div><div class="img img7"><img src="./img/p7.png" /></div><div class="img img8"><img src="./img/p8.png" /></div></div></div></div></div>
</body>
<script></script></html>

HTML 结构

  • container:主容器,用于居中显示舞台(stage)。
  • stage:舞台,用于创建 3D 效果的容器。
  • control:控制容器,包含所有图片,并在 3D 空间中旋转。
  • imgWrap:图片包装器,用于包含所有图片元素。
  • img img1 至 img img8:每个类名为 img 的 div 元素包含一个图片,并通过不同的 imgX 类来区分和定位。

CSS 样式

  • body:设置页面的显示方式、外边距和背景色。
  • .container:设置容器的位置和外边距。
  • .stage:设置舞台的尺寸、位置、透视和 3D 样式。
  • .stage .control:设置控制容器的尺寸、3D 样式和动画。
  • .stage .control .imgWrap:设置图片包装器的位置和 3D 样式。
  • .stage .control .imgWrap .img:设置图片的尺寸、位置和 3D 样式。
  • .stage .control .imgWrap img:设置图片的尺寸和圆角。
  • .stage .control .imgWrap .img1 至.stage .control .imgWrap .img8:为每张图片设置不同的 3D 旋转和位置。
  • @keyframes rotate:定义一个关键帧动画,用于控制图片轮播的旋转效果。

http://www.ppmy.cn/devtools/146268.html

相关文章

【超详细实操内容】django的身份验证系统之用户登录与退出

目录 1、用户登录:login()函数 (1)补充视图函数 (2)修改 success.html文件 (3)浏览器访问: 2、用户退出:logout()函数 (1)定义视图函数,实现退出的业务逻辑 (2)定义路由绑定视图函数 (3)在success.html页面增加一个退出的按钮 3、源码 通过请求对象r…

Ingress-Nginx Annotations 指南:配置要点全方面解读(下)

文章目录 1.HTTP2 Push Preload2.Server Alias3.Server snippet4.Client Body Buffer Size5.External Authentication6.Global External Authentication7.Rate Limiting8.Global Rate Limiting9.Permanent Redirect10.Permanent Redirect Code11.Temporal Redirect12.SSL Passt…

光谱相机与普通相机的区别

一、成像目的 普通相机&#xff1a;主要目的是记录物体的外观形态&#xff0c;生成人眼可见的、直观的二维图像&#xff0c;重点在于还原物体的形状、颜色和纹理等视觉特征&#xff0c;以供人们进行观赏、记录场景或人物等用途。例如&#xff0c;拍摄旅游风景照片、人物肖像等…

中关村科金智能客服机器人如何解决客户个性化需求与标准化服务之间的矛盾?

客户服务的个性化和标准化之间的矛盾一直是一个挑战。一方面&#xff0c;企业需要提供标准化的服务以保持运营效率和成本控制&#xff1b;另一方面&#xff0c;为了提升客户满意度和忠诚度&#xff0c;企业又必须满足客户的个性化需求。为此&#xff0c;中关村科金推出了智能客…

【PPTist】组件结构设计、主题切换

一、组件结构 以下是代码中所有组件的定义&#xff1a; Editor (编辑器主界面) index.vue (编辑器入口 - 整合所有子组件)EditorHeader (顶部操作区域) index.vue (顶部区域入口)FileInput.vue (文件导入 - 支持导入PPT文件)ExportButton.vue (导出功能 - 支持多种格式导出)T…

WebRTC音视频同步原理与实现详解(下)

WebRTC音视频同步原理与实现详解&#xff08;上&#xff09; 第四章、音视频同步实现详解 4.1 音视频同步标准 音视频做到什么程度才算是同步呢&#xff1f; 关于音画同步, 业界有3个标准&#xff1a; 1&#xff09;ITU-R BT.1359&#xff08;1998&#xff09;&#xff1a…

IP组播基础

点到多点业务&#xff1a;比如IPTV、视频会议等&#xff0c;可以使用组播、广播、单播承载&#xff0c;比如A,B,C都要收看视频X 单播会占用大量带宽&#xff0c;导致服务器压力极大 广播会发送给所有的终端&#xff0c;存在安全隐患 组播会避免上面两个方式的问题 IP组播基…

嵌入式单片机中Flash存储器控制与实现

第一:嵌入式单片机内部Flash概述 1.存储器的概念 存储器指的是若干个存储单元的集合,每个存储单元都可以存储若干个二进制数,为了方便的操作存储单元,就为每个存储单元都分配了地址,就可以通过寻址来访问存储单元。由于计算机的处理的数据量较大,并且运算速度都很快,就…