CSS3实现3d图片旋转动画效果

article/2025/9/25 0:04:38

1.实现原理

1.首先所有的图片的容器position:absolute,叠加在一起,然后一次设置rotateY分别为(36*i)deg ,i取0到10 ;所有图片会相交成一个类似花的形状 然后为每个图片的容器设置translateZ,所有图片会从对应的角度向外移动,扩展成一个大圆,即下图效果
2.创建动画,让rotateY每次增加90deg旋转起来即可。同时,为了观察效果,让rotateX依次上下移动10deg。

在这里插入图片描述

2.HTML文件

<!DOCTYPE html>
<html>
<head lang="en"><meta charset="UTF-8"><title>3D旋转</title><link rel="stylesheet" type="text/css" href="style.css"></head>
<body>
<div id="photo_box"><img src="image/1.jpg"><img src="image/2.jpg"><img src="image/3.jpg"><img src="image/4.jpg"><img src="image/5.jpg"><img src="image/6.jpg"><img src="image/7.jpg"><img src="image/8.jpg"><img src="image/9.jpg"><img src="image/10.jpg"><img src="image/11.jpg">
</div>
</body>
</html>

3.CSS3文件

*{padding: 0;margin: 0;
}/*背景设置为黑色*/
body{background:#000;
}/*设置相册盒子大小、位置、外边框、旋转参数*/
#photo_box{width: 280px;height: 400px;position: fixed;left: 0;right: 0;top:0;bottom: 0;margin: 200px auto;transform-style: preserve-3d;/*表示所有子元素在3D空间中呈现*/transform: rotateX(-5deg) rotateY(0deg);animation: run 30s linear infinite;/*循环执行run动画,每30秒执行一次*/
}/*设置图像大小、边框、圆角、位置*/
#photo_box img{width: 250px;height: 350px;border: 5px solid #ccc;border-radius: 5px;position: absolute;left: 0;top: 0;
}/*依次设置图像盒子中每个图像旋转后位置*/
#photo_box img:nth-child(1){transform: rotateY(0deg) translateZ(500px);
}
#photo_box img:nth-child(2){transform: rotateY(36deg) translateZ(500px);
}
#photo_box img:nth-child(3){transform: rotateY(72deg) translateZ(500px);
}
#photo_box img:nth-child(4){transform: rotateY(108deg) translateZ(500px);
}
#photo_box img:nth-child(5){transform: rotateY(144deg) translateZ(500px);
}
#photo_box img:nth-child(6){transform: rotateY(180deg) translateZ(500px);
}
#photo_box img:nth-child(7){transform: rotateY(216deg) translateZ(500px);
}
#photo_box img:nth-child(8){transform: rotateY(252deg) translateZ(500px);
}
#photo_box img:nth-child(9){transform: rotateY(288deg) translateZ(500px);
}
#photo_box img:nth-child(10){transform: rotateY(324deg) translateZ(500px);
}
#photo_box img:nth-child(11){transform: rotateY(360deg) translateZ(500px);
}/*采用@keyframes 规则创建run动画。*/
@keyframes run {0%{transform: rotateX(0deg) rotateY(0deg);}25%{transform: rotateX(10deg) rotateY(90deg);}50%{transform: rotateX(0deg) rotateY(180deg);}75%{transform: rotateX(-10deg) rotateY(270deg);}100%{transform: rotateX(0deg) rotateY(360deg);}
}

4.效果展示

在这里插入图片描述

5.参考

1).用HTML+CSS代码制作3D旋转相册
2).HTML5+css3:3D旋转木马效果相册

欢迎关注我的公众号。
在这里插入图片描述


http://chatgpt.dhexx.cn/article/C5XmDtqZ.shtml

相关文章

CSS3实现立体旋转动画效果

问题描述 一个3D立体图形在网页中呈现旋转效果,看起来十分炫酷,这个过程的实现其实并不困难,只需要利用CSS3动画效果,并对属性设置合适的参数之后,效果就能实现了。 在解决问题之前,需要先了解CSS3的动画效果是什么,其相关属性和参数有什么含义,这个过程就请查看CSS3动…

css3d动画:平移、旋转、缩放

1、前言&#xff1a; 3d比2d多了一个z轴&#xff0c;这个z轴是垂直我们屏幕的方向&#xff0c;指向我们人眼的是正轴&#xff0c;远离人眼的是负轴&#xff0c;图示如下&#xff1a; 2、景深设置和3d平移 当我们在z轴上向正轴方向上移动物体&#xff0c;也就是向我们眼前移动…

使用css3属性做一个循环旋转的动画

做这个动画是使用css3中的animation 和 @-webkit-keyframes 组合使用来完成 //这是html部分代码 <div class="home"><imgalt="logo"src="http://b-ssl.duitang.com/uploads/item/201206/26/20120626190359_MjB3s.jpeg"id="images…

基于HTML5+CSS3的图片旋转、无限滚动、文字跳动特效

本文分享几种基于HTML5CSS3实现的一些动画特效&#xff1a;图片旋转、无限滚动、文字跳动;实现起来均比较容易&#xff0c;动手来试试! 一、图片旋转 效果图如下&#xff1a; 这个效果实现起来其实并不困难。代码清单如下: <style type"text/css"> #liu{ wid…

内存碎片产生原因及终极解决办法

内存碎片通常分为内部碎片和外部碎片&#xff1a; 1. 内部碎片是由于采用固定大小的内存分区&#xff0c;当一个进程不能完全使用分给它的固定内存区域时就产生了内部碎片&#xff0c;通常内部碎片难以完全避免&#xff1b; 2. 外部碎片是由于某些未分配的连续内存区域太小&…

6、Redis内存碎片优化

1、Redis内存碎片是如何形成的 一是内存分配器的分配策略&#xff0c;内存分配器一般是按固定大小来分配内存&#xff0c;而不是按实际使用大小来分配。例如8字节、16字节、32字节...&#xff0c;2KB&#xff0c;4KB&#xff0c;8KB等&#xff0c;按程序申请时最接近某个固定值…

内存碎片处理技术

内存碎片处理技术 内存碎片是一个很棘手的问题。如何分配内存决定着内存碎片是否会、何时会、如何会成为一个问题。 即使在系统中事实上仍然有许多空闲内存时&#xff0c;内存碎片还会最终导致出现内存用完的 情况。一个不断产生内存碎片的系统&#xff0c;不管产生的内存碎片…

内存碎片产生原因及处理

内存碎片是一个很棘手的问题。如何分配内存决定着内存碎片是否会、何时会、如何会成为一个问题。  即使在系统中事实上仍然有许多空闲内存时&#xff0c;内存碎片还会最终导致出现内存用完的情况。一个不断产生内存碎片的系统&#xff0c;不管产生的内存碎片多么小&#xff0…

什么是Redis内存碎片率?碎片如何清理?

Redis服务器内存不够用了&#xff0c;这时可以看看是否是内存碎片的原因&#xff0c;不一定只能靠内存扩容来处理。 一、碎片率的计算 我们登陆到Redis服务器上&#xff0c;执行以下命令&#xff1a; info memory我们会看到如下的信息&#xff1a; 其中mem_fragmentation_r…

Redis 内存碎片详解

什么是内存碎片? 你可以将内存碎片简单地理解为那些不可用的空闲内存。 举个例子&#xff1a;操作系统为你分配了 32 字节的连续内存空间&#xff0c;而你存储数据实际只需要使用 24 字节内存空间&#xff0c;那这多余出来的 8 字节内存空间如果后续没办法再被分配存储其他数…

redis之内存碎片问题如何解决

写在前面 本文一起看下如何处理Redis的内存碎片问题。 1&#xff1a;什么是内存碎片 当操作系统内存充足&#xff0c;但是却无法申请连续N字节内存空间时&#xff0c;这些剩余的内存空间就叫内存碎片。 2&#xff1a;内存碎片是如何形成的 内存碎片的形成有两方面的因素&a…

如何解决内存碎片

内存碎片的产生&#xff1a; 内存分配有静态分配和动态分配两种 静态分配在程序编译链接时分配的大小和使用寿命就已经确定&#xff0c;而应用上要求操作系统可以提供给进程运行时申请和释放任意大小内存的功能&#xff0c;这就是内存的动态分配。 因此动态分配…

内存中,外部碎片与内部碎片,解决办法

什么是内部碎片、外部碎片 外部碎片&#xff0c;是由于大量信息由于先后写入、置换、删除而形成的空间碎片。为了便于理解&#xff0c;我们将信息比作货物&#xff0c;将存储空间比作仓库来举例子。假设&#xff0c;我们有编号为1、2、3、4、5、6的6间仓库库房&#xff0c;前天…

内存碎片

内存碎片的产生&#xff1a; 内存分配有静态分配和动态分配两种 静态分配在程序编译链接时分配的大小和使用寿命就已经确定&#xff0c;而应用上要求操作系统可以提供给进程运行时申请和释放任意大小内存的功能&#xff0c;这就是内存的动态分配。 因此动态分配…

内存碎片---内部碎片外部碎片

内部碎片的产生&#xff1a;因为所有的内存分配必须起始于可被 4、8 或 16 整除&#xff08;视处理器体系结构而定&#xff09;的地址或者因为MMU的分页机制的限制&#xff0c;决定内存分配算法仅能把预定大小的内存块分配给客户。假设当某个客户请求一个43字节的内存块时&…

内存碎片是什么?关于内存碎片的解释

内存碎片是什么&#xff1f;关于内存碎片 内存碎片通常分为内部碎片和外部碎片。 内部碎片 所谓内部碎片指的就是&#xff0c;系统为某项功能分派了一定的内存&#xff0c;但是该功能的实现没有用完所有系统分配的。余下的部分就被成为内存碎片的内部碎片。 外部碎片 外部内存…

内存碎片概念

内存碎片是无法被系统利用的内存区域&#xff0c;分为外部碎片和内部碎片。 1 外部碎片 系统有空闲内存区域&#xff0c;空闲内存的总量足够&#xff0c;但应用就是分配不到空间。无法被利用的内存被称为外部碎片。假设当前系统内存布局(空白区域表示空闲内存) 例如&#xf…

内存碎片产生原因及解决方法

文章目录 1、现象描述2、原因分析3、解决方法 1、现象描述 某些应用程序频繁调用 malloc函数申请内存空间&#xff0c;且申请空间的大小差别比较大&#xff0c;使用完成后通过 free函数释放内存空间&#xff0c;但内存空间依然缓存在glibc中&#xff0c;没有归还操作系统&#…

内存碎片:理解、应用场景和防止措施

目录 摘要1. 引言2. 内存碎片的概念3. 内存碎片的产生原因4. 应用场景4.1 应用场景一&#xff1a;长时间运行的服务器4.2 应用场景二&#xff1a;嵌入式系统 5. 预防和处理内存碎片6. 示例代码&#xff1a;生成内存碎片7. 总结 摘要 本文旨在向初学者详细介绍内存碎片的概念、…

内存碎片产生原因及解决办法

来源&#xff1a;知乎 链接&#xff1a;https://www.zhihu.com/question/51836333/answer/145693402 内存碎片通常分为内部碎片和外部碎片&#xff1a; 1. 内部碎片是由于采用固定大小的内存分区&#xff0c;当一个进程不能完全使用分给它的固定内存区域时就产生了内部碎…