纯CSS实现3D照片墙

HTML部分:

<body><div class="photo-wrap">  <!-- 舞台 --><div class="container">   <!-- 容器 --><div class="img">我是中心</div><div class="img img01"><img src="images/blog1.jpg" alt=""></div><div class="img img02"><img src="images/blog2.jpg" alt=""></div><div class="img img03"><img src="images/blog3.jpg" alt=""></div><div class="img img04"><img src="images/blog4.jpg" alt=""></div><div class="img img05"><img src="images/blog1.jpg" alt=""></div><div class="img img06"><img src="images/blog2.jpg" alt=""></div><div class="img img07"><img src="images/blog3.jpg" alt=""></div><div class="img img08"><img src="images/blog4.jpg" alt=""></div><div class="img img09"><img src="images/blog1.jpg" alt=""></div></div></div>
</body>

CSS部分:

 @keyframes rotate-frame {0% {transform: rotateX(-20deg) rotateY(0deg);}10% {transform: rotateX(-20deg) rotateY(36deg);}20% {transform: rotateX(-20deg) rotateY(72deg);}30% {transform: rotateX(-20deg) rotateY(108deg);}40% {transform: rotateX(-20deg) rotateY(144deg);}50% {transform: rotateX(-20deg) rotateY(180deg);}60% {transform: rotateX(-20deg) rotateY(216deg);}70% {transform: rotateX(-20deg) rotateY(252deg);}80% {transform: rotateX(-20deg) rotateY(288deg);}90% {transform: rotateX(-20deg) rotateY(324deg);}100% {transform: rotateX(-20deg) rotateY(360deg);}}body {background: #f9f9f9;}img{width:100%;height: 100%;}.photo-wrap {perspective: 800px;width: 800px;}.container {width: 800px;height: 500px;margin: 0 auto;position: relative;transform-style: preserve-3d;transform:rotateX(-10deg);animation: rotate-frame 10s linear infinite;}.img {width: 200px;height: 118px;line-height: 118px;text-align: center;position: absolute;top: 160px;left: 300px;box-shadow: 0 0 20px rgba(0, 0, 0, 0.9) inset;
      /*倒影的实现 第二个属性值为offset属性值定义图片和倒影影像之间的间距,第三个为给倒影增加消影效果*/-webkit-box-reflect:below 3px -webkit-linear-gradient(top,rgba(0,0,0,0) 40%,rgba(0,0,0,0.5));background: pink;background:-moz-linear-gradient(top, pink, rgba(0, 0, 255, 0.5));background:-webkit-gradient(linear, 0 0, 0 bottom, from(#ccccff), to(rgba(174, 221, 129, 0.5)));background:-o-linear-gradient(top, pink, rgba(0, 0, 255, 0.5));transform: rotateY(0deg);}.img01 {transform: rotateY(0deg) translateZ(300px);}.img02 {transform: rotateY(40deg) translateZ(300px);}.img03 {transform: rotateY(80deg) translateZ(300px);}.img04 {transform: rotateY(120deg) translateZ(300px);}.img05 {transform: rotateY(160deg) translateZ(300px);}.img06 {transform: rotateY(200deg) translateZ(300px);}.img07 {transform: rotateY(240deg) translateZ(300px);}.img08 {transform: rotateY(280deg) translateZ(300px);}.img09 {transform: rotateY(320deg) translateZ(300px);}

效果如下(倒影的实现方法已在CSS部分用蓝色标记出来):


更多专业前端知识,请上 【猿2048】www.mk2048.com

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/364898.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Neo4j Backup:在Mark Needham上存储副本和一致性检查

我上周写的有关 Neo4j在线备份工具的鲜为人知的事情之一是&#xff0c;从概念上讲&#xff0c;它包含两个部分&#xff1a; 将商店文件复制到您选择的位置 验证这些存储文件是否一致。 默认情况下&#xff0c;这两个命令都在您运行“ neo4j-backup”脚本时运行&#xff0c;但…

Guava之RangeMap

在Guava官方API上面可以得知&#xff1a;RangeMap是一种集合类型( collection type)&#xff0c;它将不相交、且不为空的Range&#xff08;key&#xff09;映射给一个值&#xff08;Value&#xff09;。和RangeSet不一样&#xff0c;RangeMap不可以将相邻的区间合并&#xff0c…

sqoop遇到mysql字段为保留字_关于在sqoop 导出数据到mysql数据库的过程对于空字符的处理。...

今天在做sqoop的导入和导出的操作。在导出数据到mysql数据库的时候一直有问题&#xff0c;在导入空字段的时候就出现下面这个错误。WARN hdfs.DFSClient: Caught exceptionjava.lang.InterruptedExceptionat java.lang.Object.wait(Native Method)at java.lang.Thread.join(Thr…

CSS3新增的伪类选择器

伪类选择器的作用&#xff1a;对已有选择器做进一步的限制&#xff0c;对已有选择器能匹配的元素做进一步的过滤。CSS 3提供的伪类选择器主要分为以下三类&#xff1a; 结构性伪类选择器UI元素状态伪类选择器其他伪类选择器 1、结构性伪类选择器 Selector:root&#xff1a;匹…

签名SOAP消息–生成封装的XML签名

数字签名是使数字内容真实可信的一种广泛使用的机制。 通过为某些内容生成数字签名&#xff0c;我们可以让另一方能够验证该内容。 通过此验证&#xff0c;它可以保证在我们签名后不会更改。 通过这个示例&#xff0c;我将分享如何为SOAP信封生成签名。 但是&#xff0c;这当然…

2019 The 19th Zhejiang University Programming Contest

感想&#xff1a; 今天三个人的状态比昨天计院校赛的状态要好很多&#xff0c;然而三个人都慢热体质导致签到题wa了很多发。最后虽然跟大家题数一样(6题)&#xff0c;然而输在罚时。 只能说&#xff0c;水题还是刷得少&#xff0c;看到签到都没灵感实在不应该。 题目链接&#…

openvas安装和基本使用

OpenVAS是开放式漏洞评估系统&#xff0c;也可以说它是一个包含着相关工具的网络扫描器。OpenVAS是开放式漏洞评估系统&#xff0c;也可以说它是一个包含着相关工具的网络扫描器。其核心部件是一个服务器&#xff0c;包括一套网络漏洞测试程序&#xff0c;可以检测远程系统和应…

修改mysql编码方式centos_CentOS下修改mysql数据库编码为UTF-8(附mysql开启远程链接和开放3306端口)...

楼主在配置好linux云服务器的jdk,tomcat,mysql后&#xff0c;当要开始部署项目是&#xff0c;忽然意识到一个很严重的问题&#xff0c;那就是数据库的编码问题&#xff0c;自安装完成后并未修改数据库的额编码。。。。下面就来讲说linux下修改mysql的编码问题吧。。有一个问题网…

Java 8 Lambda表达式的函数式编程– Monads

什么是monad &#xff1f;&#xff1a; monad是一种设计模式概念&#xff0c;用于大多数功能编程语言&#xff08;如Lisp&#xff09;或现代世界的Clojure或Scala中。 &#xff08;实际上&#xff0c;我会从scala复制一些内容。&#xff09;现在&#xff0c;为什么它在Java中变…

srtvlet filter

Filter&#xff0c;过滤器&#xff0c;顾名思义&#xff0c;即是对数据等的过滤&#xff0c;预处理过程。为什么要引入过滤器呢&#xff1f;在平常访问网站的时候&#xff0c;有时候发一些敏感的信息&#xff0c;发出后显示时 就会将敏感信息用*等字符替代&#xff0c;这就是用…

mysql怎么合并行_mysql怎么合并行

mysql合并行的方法&#xff1a;使用函数【GROUP_CONCAT()】&#xff0c;代码为【SELECT am.activeId,GROUP_CONCAT(m.modelName SEPARATOR ‘,’) modelName】。【相关学习推荐&#xff1a;mysql学习】mysql合并行的方法&#xff1a;一个字段可能对应多条数据&#xff0c;用mys…

ubuntu 14 编译ARM g2o-20160424

1. 安装eigen sudo apt-get install libeigen3-dev sudo apt-get install libsuitesparse-dev sudo apt-get install libqglviewer-dev 对于ARM版本&#xff0c;可以下载http://eigen.tuxfamily.org&#xff0c;之后放置在toolchain可以找到的三方库位置处&#xff0c;我使用的…

将旧项目从Ant迁移到Maven的4个简单步骤

一段时间以来&#xff0c;我们一直在考虑将构建从蚂蚁移植到Maven。 它发生在上个月&#xff0c;实际上比我们预期的要简单。 根据我的经验&#xff0c;这里简要介绍了我们遵循的步骤。 我们的应用程序是一个具有多个框架和技术的企业Web应用程序构建&#xff0c;并作为单个WAR…

浅谈servlet与jsp的关系

servlet是用java语言编写的&#xff0c;是一个java类。主要功能是用来接受、处理客户端的请求&#xff0c;并把处理结果返回到客户端显示。Jsp是servlet发展后期的产物。在没有jsp之前&#xff0c;servlet利用输出流动态生成整个HTML页面&#xff0c;输出内容包括每一个HTML标签…

折腾Java设计模式之建造者模式

博文原址&#xff1a;折腾Java设计模式之建造者模式 建造者模式 Separate the construction of a complex object from its representation, allowing the same construction process to create various representations. 将复杂对象的构造与其表现分离&#xff0c;允许相同的构…

python小甲鱼练习题答案_小甲鱼Python第 013讲元组:戴上了枷锁的列表 | 课后测试题及参考答案...

测试题&#xff1a;0. 请用一句话描述什么是列表&#xff1f;再用一句话描述什么是元组&#xff1f;列表&#xff1a;一个大仓库&#xff0c;可以随时往里面添加和删除任何东西。元祖&#xff1a;封闭的列表&#xff0c;一旦定义&#xff0c;就不可改变(不能添加、删除或修改)1…

获得的经验:ActiveMQ,Apache Camel和连接池

每隔一段时间&#xff0c;我会遇到一个与ActiveMQ的连接和池相关的有趣问题&#xff0c;而今天&#xff0c;我想讨论一些并不总是很清楚的问题&#xff0c;并且在使用ActiveMQ和Camel JMS时可能会导致您大量饮酒。 并不是说您无论如何都不会在使用ActiveMQ和Camel时大量喝酒………

羊车门问题

题目描述&#xff1a;有3扇关闭的门&#xff0c;一扇门后面停着汽车&#xff0c;其余门后是山羊&#xff0c;只有主持人知道每扇门后面是什么。参赛者可以选择一扇门&#xff0c;在开启它之前&#xff0c;主持人会开启另外一扇门&#xff0c;露出门后的山羊&#xff0c;然后允许…

webapp优化

1. 优化前提&#xff1a; 业务架构与数据库设计 2. 单页web应用 &#xff1a; ExtJs backbone ng avalon 框架&#xff1a; React Native &#xff0c; ionic &#xff0c; Mui, metror,WeeX,device one Meteor(版本: 1.0) 的另一个特点是它会通过手机内存中运行的 mi…

高版本Sqlserver数据库导入低版本Sqlserver

今天想跑一个关于java网站的demo&#xff0c;结果在附加数据库项这一块出现问题&#xff0c;例程的数据库用的是sqlserver2014&#xff0c;而我的是2008&#xff0c;添加数据库出现错误。经过一番查找&#xff0c;也找到某人写的一些博客上的解决方案&#xff0c;不过不是很清楚…