属性简介

perspective 属性

perspective 属性 指定了观察者与 z = 0 平面的距离,使具有三维位置变换的元素产生透视效果。

transform-style 属性

属性 transform-style 设置元素的子元素是位于 3D 空间中还是平面中变换。

translateZ() 函数

修改元素 z轴 在三维空间的位置。

rotateX() 、rotateY() 函数

rotateX()元素围绕 x轴 旋转。rotateY()元素围绕 y轴 旋转。

animation 属性

  1. 为元素添加一个动画。
  2. 通过 @keyframes 设置动画。

搭建舞台

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8" /><meta http-equiv="X-UA-Compatible" content="IE=edge" /><meta name="viewport" content="width=device-width, initial-scale=1.0" /><title>Document</title><style type="text/css">.main {width: 1000px;min-height: 600px;margin: 50px auto;background-color: #f0f0f0;box-shadow: inset 0 0 3px rgba(0, 0, 0, 0.35);position: relative;top: 0;display: flex;justify-content: center;align-items: center;/* 3D视距 透视 */-webkit-perspective: 800px;perspective: 800px;}.container {width: 200px;height: 200px;position: relative;transform: rotateX(30deg);/* 添加动画  */animation: rotateAn 5s linear infinite;-webkit-animation: rotateAn 5s linear infinite;/* 修改子元素 为3D变换 */-webkit-transform-style: preserve-3d;transform-style: preserve-3d;}</style></head><body><!-- 舞台 --><div class="main"><!-- 容器 --><div id="container" class="container"><!-- 内 --><div class="withinBox"><div class="inner"></div><div class="inner"></div><div class="inner"></div><div class="inner"></div><div class="inner"></div><div class="inner"></div></div><!-- 外 --><div class="outsideBox"><div class="inner"></div><div class="inner"></div><div class="inner"></div><div class="inner"></div><div class="inner"></div><div class="inner"></div></div></div></div></body>
</html>

效果图

创建内框

.../* 内框 */.withinBox {width: 100px;height: 100px;position: absolute;top: 50px;left: 50px;/* 修改子元素 为3D变换 */-webkit-transform-style: preserve-3d;transform-style: preserve-3d;}.withinBox .inner {width: 100px;height: 100px;position: absolute;left: 0;top: 0;}.withinBox .inner:nth-child(1) {background-color: #ccffff;/* 正面 */transform: translateZ(50px);-webkit-transform: translateZ(50px);}.withinBox .inner:nth-child(2) {background-color: #ccccff;/* 背面 */transform: rotateX(180deg) translateZ(50px);-webkit-transform: rotateX(180deg) translateZ(50px);}.withinBox .inner:nth-child(3) {background-color: #99ffff;/* 下面 */transform: rotateX(-90deg) translateZ(50px);-webkit-transform: rotateX(-90deg) translateZ(50px);}.withinBox .inner:nth-child(4) {background-color: #99ffcc;/* 上面 */transform: rotateX(90deg) translateZ(50px);-webkit-transform: rotateX(90deg) translateZ(50px);}.withinBox .inner:nth-child(5) {background-color: #ffccff;/* 左面 */transform: rotateY(-90deg) translateZ(50px);-webkit-transform: rotateY(-90deg) translateZ(50px);}.withinBox .inner:nth-child(6) {background-color: #ffcccc;/* 右面 */transform: rotateY(90deg) translateZ(50px);-webkit-transform: rotateY(90deg) translateZ(50px);}@keyframes rotateAn {0% {transform: rotateX(30deg) rotateY(0deg);-webkit-transform: rotateX(30deg) rotateY(0deg);}100% {transform: rotateX(30deg) rotateY(360deg);-webkit-transform: rotateX(30deg) rotateY(360deg);}}
...
  • 这里要注意的是,每一面的旋转度数和z轴移动距离,刚好能组成一个正方形
  • 这里添加了动画效果能更直观的查看效果。

效果图

创建外框

      /* 外框 */.outsideBox{width: 200px;height: 200px;position: absolute;/* 修改子元素 为3D变换 */-webkit-transform-style: preserve-3d;transform-style: preserve-3d;}.outsideBox .inner{width: 200px;height: 200px;position: absolute;background: #fff;border:1px solid #ccc;position: absolute;left: 0;top: 0;opacity: 0.2;}.outsideBox .inner:nth-child(1) {background-color: #ccffff;/* 正面 */transform: translateZ(100px);-webkit-transform: translateZ(100px);}.outsideBox .inner:nth-child(2) {background-color: #ccccff;/* 背面 */transform: rotateX(180deg) translateZ(100px);-webkit-transform: rotateX(180deg) translateZ(100px);}.outsideBox .inner:nth-child(3) {background-color: #99ffff;/* 下面 */transform: rotateX(-90deg) translateZ(100px);-webkit-transform: rotateX(-90deg) translateZ(100px);}.outsideBox .inner:nth-child(4) {background-color: #99ffcc;/* 上面 */transform: rotateX(90deg) translateZ(100px);-webkit-transform: rotateX(90deg) translateZ(100px);}.outsideBox .inner:nth-child(5) {background-color: #ffccff;/* 左面 */transform: rotateY(-90deg) translateZ(100px);-webkit-transform: rotateY(-90deg) translateZ(100px);}.outsideBox .inner:nth-child(6) {background-color: #ffcccc;/* 右面 */transform: rotateY(90deg) translateZ(100px);-webkit-transform: rotateY(90deg) translateZ(100px);}/* 展开效果 */.outsideBox:hover .inner:nth-child(1) {/* 正面 */transform: translateZ(200px);-webkit-transform: translateZ(200px);opacity: 0.8;}.outsideBox:hover .inner:nth-child(2) {/* 背面 */transform: rotateX(180deg) translateZ(200px);-webkit-transform: rotateX(180deg) translateZ(200px);opacity: 0.8;}.outsideBox:hover .inner:nth-child(3) {/* 下面 */transform: rotateX(-90deg) translateZ(200px);-webkit-transform: rotateX(-90deg) translateZ(200px);opacity: 0.8;}.outsideBox:hover .inner:nth-child(4) {/* 上面 */transform: rotateX(90deg) translateZ(200px);-webkit-transform: rotateX(90deg) translateZ(200px);opacity: 0.8;}.outsideBox:hover .inner:nth-child(5) {/* 左面 */transform: rotateY(-90deg) translateZ(200px);-webkit-transform: rotateY(-90deg) translateZ(200px);opacity: 0.8;}.outsideBox:hover .inner:nth-child(6) {/* 右面 */transform: rotateY(90deg) translateZ(200px);-webkit-transform: rotateY(90deg) translateZ(200px);opacity: 0.8;}
  • 每一面的 旋转度数和z轴移动距离,刚好能组成一个正方形。
  • :hover中面的旋转度数和之前相同,增加z轴移动距离,鼠标移入后实现展开效果。
  • div中添加图片就是相册效果了。
    效果图

transform 属性 实现3D立体相册相关推荐

  1. 3D立体相册不过是冷锋蓝plus版 html+css

    一.话不多,先看效果: 转念一想,好像很久很久没出css特效的文章了,特别是工作之后,更少了.偶然翻看电脑内存的时候,发现这个自己1年多以前写的特效,甚美,又勾起我一段尘封的回忆...我原来也发过3D ...

  2. H5 3d立体相册 CSS3特性

    CSS3 变形特性,立方相册,3d旋转 之前看见过3d效果的立体相册,挺羡慕的,现在自己也有机会实现属于自己的3d立体相册了~~~话不多说,开搞- 一, 准备材料 六张自己喜欢的图片,六个面,怎么简单 ...

  3. 抖音3d相册html代码,抖音3D立体相册表白代码.doc

    抖音3D立体相册表白浪漫代码 首先先建立html文件 css-3d旋转 之后再新建一个CSS的文件夹 并在css文件夹中建立txt文件,并且把代码复制进去,修改后缀名为.css html{ backg ...

  4. 搭载3D立体相册网页 加入背景音乐 真香!

    一.3D立体相册 HTML代码 <!DOCTYPE html> <html lang="en"><head><meta

  5. css3 3D立体相册实现

    这几天无聊,看到有博主弄的电子相册有点意思,就照葫芦画瓢也实现了一个,一个半透明的正方体包含着一个小正方体,相册自动旋转,当获得焦点时变化效果,截图如下: 一,代码目录结构 二,html代码 < ...

  6. 还在买鲜花送女神?手把手教你搭建3D立体相册网站,包女神稀饭

    是不是一款人见人爱的相册网站,看下图演示马上知晓.360度3D立体旋转,随意放大缩小任一张照片,合适每一个女生的小胃口,保证女神眼前一亮,对您刮目相看. 我们的特点是--情人节圣诞节女神生日纪念日都适 ...

  7. 抖音程序员HTML相册,快手抖音程序员表白女朋友3D立体相册源码html网页相册代码...

    前几天分享了一套源码,今天又为大家带来一套类似的源码,希望大家喜欢! 快手抖音很火的程序员女朋友3D立体相册源码html网页相册代码,经测试在IE8浏览器下无法预览,建议使用支持HTML5与css3效 ...

  8. 3D立体相册 html+css

    前言 用css的transform属性做一个3D相册~~~ 值translate表示偏移: scale表示缩放: rotate就是转动. 一.先看效果 二.实现步骤 1.我们知道一个正方体有6个面,所 ...

  9. 3D立体相册模板(大小可更改)

    这一次代码里面加入了注释,标注了如果要更改大小需要更改的数据,以便大家更好地使用~ <!Doctype html> <html lang="en">< ...

最新文章

  1. Eclipse开发struts完全指南
  2. NAPI模式--中断和轮询的折中以及一个负载均衡的问题
  3. MFC中下拉条(组合框)combo box的使用图文教程
  4. dom定义了访问html文档对象的,HTML DOM (文档对象模型)
  5. 办公技巧:Excel日常高频使用技巧,赶快收藏吧!
  6. Oracle Grid 11.2.0.4 安装是出现INS-30510: Insufficient number of ASM disks selected.
  7. 不知道这十项Linux常识,就别说自己玩过Linux!
  8. 简单好用的每日任务管理小工具-sticker桌面便签
  9. cad怎样弄出放线的坐标_怎么把图纸上的坐标输入CAD详细步骤?
  10. 【08月21日】指数估值排名
  11. 关于administrator没有管理员权限问题
  12. 如何使postman变为汉化版
  13. 他励直流电动机的制动
  14. ubuntu重新安装驱动
  15. 华为BGP协议基础配置
  16. 甲方乙方——如何协调设计师与客户之间的矛盾
  17. 国外.net开源程序
  18. 制作Android开机动画 bootanimation.zip
  19. 基于高德地图根据地址名称返回对应的经纬度
  20. 当VR遇上云计算,华为要让VR飞入寻常百姓家

热门文章

  1. 机器视觉算法与应用读书笔记(算法)
  2. 在浏览器拉起应用的方式
  3. HDU 3518 HDU 4416【后缀自动机len的使用】
  4. 降维之主成分分析法(PCA)
  5. 【超全】Go语言超详细学习知识体系
  6. python什么意思g_在laymans术语中,Python字符串格式“g”实际上是什么意思?
  7. 对Python控制流图生成器的一些探索
  8. cisco packet tracer_交换机配置/mac地址表(图解version:8+)
  9. k8s DNS服务配置
  10. container_of 和 offsetof 解析