利用css制作3D照片墙

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>无标题文档</title>
</head><body><div><img src="#"/><img src="#"/><img src="#"/><img src="#"/><img src="#"/><img src="#"/><img src="#"/><img src="#"/></div></body>
</html>

以上代码是准备工作,在html代码的body主体中放了一个div,里面包着你想要显示在照片墙上的照片,数量可以任意。接着开始着手写样式。

 body{perspective: 5800px;}

以上代码是为照片墙设置一个足够大的3D视距,至少能容下所有图片的运动轨迹。

 img{position:absolute;height:480px;width:320px;}

以上代码是给每个图片设置样式,给图片一个绝对定位,使其可以被任意地控制位置,此时图片会重叠在一起,宽高取决于照片墙中的的图片的具体尺寸,当然你也可以设置大小,320*480是我举的一个例子。

 img:nth-child(1){transform: translateZ(500px);}img:nth-child(2){transform: translateZ(-500px);}img:nth-child(3){transform:rotateY(45deg) translateZ(-500px);}img:nth-child(4){transform:rotateY(45deg)  translateZ(500px);}img:nth-child(5){transform:rotateY(-45deg) translateZ(500px);}img:nth-child(6){transform:rotateY(-45deg) translateZ(-500px);}img:nth-child(7){transform:rotateY(90deg) translateZ(500px);}img:nth-child(8){transform:rotateY(90deg) translateZ(-500px);}

以上代码是给每个图片单独设置样式,使每张图片绕自身Y轴旋转一定角度,角度取决于你放了多少张图片,有n张图,则每张图片依次旋转360/n度,比如这里我放了8张图,那么每张图应依次比上一张图片多旋转360/8=45度,层层递进,如0度、45度、90度、135度、180度、225度、270度、315度,再使每张图片向自身的Z轴(此时每张图片的Z轴方向都已改变)都设置一个正向(全为负值也可)的等距离的位移,使其扩散开,我这里的写法效果也一样,旋转45度位移 - 500px其实和旋转225度位移500px效果是一样的。

俯视图:先自身旋转,再向各个方向扩散。
一定要先旋转,使自身Z轴方向改变再位移,否则会发生如下情况:

先位移后再旋转,由于先位移时所有图片的z轴都为初始方向,会使得所有图片同向位移一段距离,仍然叠在一起,再旋转时也会挤在一起。

接着

div{margin:0 auto;margin-top:600px;
transform-style: preserve-3d;
animation:zhuan 6s linear  infinite;height:480px;width:320px;}
@keyframes zhuan{0%{transform:rotateX(-15deg) rotateY(0);}100%{transform: rotateX(-15deg) rotateY(360deg);}}

最后一步:给包着所有图片的div设置绕着初始位置旋转的动画效果即rotateY(360deg),这里要注意是给div设置动画,而不是给图片,否则会变成“自转”,我们需要的效果是“公转”,设置margin使其在浏览器中间显示,方便观察,设置3d视角,接着给动画设置过渡时间6s(旋转快慢,可更改),再设置infinite使其无限循环,为了方便观察我使整个div绕其x轴旋转-15度。

效果图

END
THANK YOU FOR WATCHING

利用css制作3D照片墙相关推荐

  1. html5实现立体照片墙效果,利用css制作3D照片墙效果

    利用css制作3D照片墙,具体代码如下所示: 无标题文档 以上代码是准备工作,在html代码的body主体中放了一个div,里面包着你想要显示在照片墙上的照片,数量可以任意.接着开始着手写样式. bo ...

  2. 利用css制作3d图片旋转_练习

    效果: 鼠标触碰时(停止旋转并高亮): 代码: <!DOCTYPE html> <html lang="en"> <head><meta ...

  3. HTML+CSS制作3D旋转相册

    一.HTML+CSS制作3D旋转相册 哈哈哈,放寒假啦!又可以好好闭关修炼了,最近,在抽屉里无意中翻到了自己上小学时的照片,太可爱啦,照片我就不贴出来了,于是,我就想着用所学的知识,做一个3D旋转相册 ...

  4. HTML+CSS制作3D步数统计界面

    HTML+CSS制作3D步数统计界面 效果图如下: HTML部分源代码如下: <!DOCTYPE html> <html lang="en"><hea ...

  5. 纯CSS制作3D旋转风车动画效果

    效果图展示        HTML源码: <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"&g ...

  6. 利用 Css 制作精美的卡片UI (赞)

    原文出处:https://segmentfault.com/a/1190000009388832 效果图,鼠标移彩色,移出黑白                     本教程将会告诉你如何用 Html ...

  7. 利用CSS制作一个向右的箭头

    利用CSS制作一个向右的箭头 <style type="text/css">.box{/* 利用CSS制作一个向右的箭头 */width:200px;height:20 ...

  8. html+css制作3D七夕表白旋转相册特效

    一个温暖的拥抱,一句轻声的问候,一个暖心的笑容,一双坚实的双手,让我们日久天长,健健康康,快乐每一天!祝你们七夕快乐!一个基于html+css制作简易的3D七夕表白旋转相册特效,就当送给你们当作七夕表 ...

  9. html+css制作3D透明立体效果

    今天给大家分享一下如何制作3D透明立体 首先还是说一下原理: 在一个大盒子中包含六个小盒子,每个盒子中放置一张图片,通过我们使用rotate和translate属性,让每一张图片旋转一定的角度,从而使 ...

最新文章

  1. 模拟儿童学习多语言,Deepmind让DL看视频就学会翻译
  2. 安装scala之后,命令行中输入scala报错nullpointException
  3. 强行终止python_中国的真实离婚率:一点也不高,反而低的惊人 | 用python计算离婚率...
  4. JS Date格式化为yyyy-MM-dd类字符串
  5. 深圳大学计算机科学考研,深圳大学考研计算机专业要多少分数会被百分百录取...
  6. js或css文件后面跟参数的原因说明
  7. 另辟蹊径 直取通州的“墨迹天气”APP应用的成功故事
  8. Flixel Dame 坦克大战(二)Dame-editor使用指南
  9. C#实现简单气泡屏保(一)
  10. AT命令交互之-COPS选择营运商
  11. 人机交互基础教程-复习总结
  12. Guessing Game
  13. 前端VUE图片预加载
  14. 用HTML制作一首诗
  15. html怎么电视连电脑,电脑怎么投屏到电视?图文讲解电脑投屏具体方法步骤
  16. ATMEGA88PA-AU(工作原理图)
  17. XWPFParagraph设置样式
  18. JAVA简介及其编码规范
  19. 系统分析师真题2019试卷相关概念二
  20. XSS攻击的简单实现

热门文章

  1. 微服务(一)微服务理念
  2. mysql对称_对于《由对称性解2
  3. 扫一扫,一键生成微信个人数据报告
  4. Python脚本一键找出哪些微信好友删了你(附源码)
  5. 【NOIP2013模拟联考5】小麦亩产一千八题解
  6. mysql可串行化读音,Oracle与MySQL中“可串行化”的对比测试
  7. 圣诞来袭,学编程的小伙伴收到圣诞老人礼物了?
  8. 小米6android版本多少,小米6有几个版本 小米6各版本区别对比
  9. 【you may need to restart the kernel to use updated packages】
  10. 二氧化碳浓度数据集整理