transform 属性 实现3D立体相册
属性简介
perspective 属性
perspective 属性 指定了观察者与 z = 0
平面的距离,使具有三维位置变换的元素产生透视效果。
transform-style 属性
属性 transform-style 设置元素的子元素是位于 3D 空间中还是平面中变换。
translateZ() 函数
修改元素 z轴
在三维空间的位置。
rotateX() 、rotateY() 函数
rotateX(
)元素围绕 x轴
旋转。rotateY()
元素围绕 y轴
旋转。
animation 属性
- 为元素添加一个动画。
- 通过
@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立体相册相关推荐
- 3D立体相册不过是冷锋蓝plus版 html+css
一.话不多,先看效果: 转念一想,好像很久很久没出css特效的文章了,特别是工作之后,更少了.偶然翻看电脑内存的时候,发现这个自己1年多以前写的特效,甚美,又勾起我一段尘封的回忆...我原来也发过3D ...
- H5 3d立体相册 CSS3特性
CSS3 变形特性,立方相册,3d旋转 之前看见过3d效果的立体相册,挺羡慕的,现在自己也有机会实现属于自己的3d立体相册了~~~话不多说,开搞- 一, 准备材料 六张自己喜欢的图片,六个面,怎么简单 ...
- 抖音3d相册html代码,抖音3D立体相册表白代码.doc
抖音3D立体相册表白浪漫代码 首先先建立html文件 css-3d旋转 之后再新建一个CSS的文件夹 并在css文件夹中建立txt文件,并且把代码复制进去,修改后缀名为.css html{ backg ...
- 搭载3D立体相册网页 加入背景音乐 真香!
一.3D立体相册 HTML代码 <!DOCTYPE html> <html lang="en"><head><meta
- css3 3D立体相册实现
这几天无聊,看到有博主弄的电子相册有点意思,就照葫芦画瓢也实现了一个,一个半透明的正方体包含着一个小正方体,相册自动旋转,当获得焦点时变化效果,截图如下: 一,代码目录结构 二,html代码 < ...
- 还在买鲜花送女神?手把手教你搭建3D立体相册网站,包女神稀饭
是不是一款人见人爱的相册网站,看下图演示马上知晓.360度3D立体旋转,随意放大缩小任一张照片,合适每一个女生的小胃口,保证女神眼前一亮,对您刮目相看. 我们的特点是--情人节圣诞节女神生日纪念日都适 ...
- 抖音程序员HTML相册,快手抖音程序员表白女朋友3D立体相册源码html网页相册代码...
前几天分享了一套源码,今天又为大家带来一套类似的源码,希望大家喜欢! 快手抖音很火的程序员女朋友3D立体相册源码html网页相册代码,经测试在IE8浏览器下无法预览,建议使用支持HTML5与css3效 ...
- 3D立体相册 html+css
前言 用css的transform属性做一个3D相册~~~ 值translate表示偏移: scale表示缩放: rotate就是转动. 一.先看效果 二.实现步骤 1.我们知道一个正方体有6个面,所 ...
- 3D立体相册模板(大小可更改)
这一次代码里面加入了注释,标注了如果要更改大小需要更改的数据,以便大家更好地使用~ <!Doctype html> <html lang="en">< ...
最新文章
- Eclipse开发struts完全指南
- NAPI模式--中断和轮询的折中以及一个负载均衡的问题
- MFC中下拉条(组合框)combo box的使用图文教程
- dom定义了访问html文档对象的,HTML DOM (文档对象模型)
- 办公技巧:Excel日常高频使用技巧,赶快收藏吧!
- Oracle Grid 11.2.0.4 安装是出现INS-30510: Insufficient number of ASM disks selected.
- 不知道这十项Linux常识,就别说自己玩过Linux!
- 简单好用的每日任务管理小工具-sticker桌面便签
- cad怎样弄出放线的坐标_怎么把图纸上的坐标输入CAD详细步骤?
- 【08月21日】指数估值排名
- 关于administrator没有管理员权限问题
- 如何使postman变为汉化版
- 他励直流电动机的制动
- ubuntu重新安装驱动
- 华为BGP协议基础配置
- 甲方乙方——如何协调设计师与客户之间的矛盾
- 国外.net开源程序
- 制作Android开机动画 bootanimation.zip
- 基于高德地图根据地址名称返回对应的经纬度
- 当VR遇上云计算,华为要让VR飞入寻常百姓家
热门文章
- 机器视觉算法与应用读书笔记(算法)
- 在浏览器拉起应用的方式
- HDU 3518 HDU 4416【后缀自动机len的使用】
- 降维之主成分分析法(PCA)
- 【超全】Go语言超详细学习知识体系
- python什么意思g_在laymans术语中,Python字符串格式“g”实际上是什么意思?
- 对Python控制流图生成器的一些探索
- cisco packet tracer_交换机配置/mac地址表(图解version:8+)
- k8s DNS服务配置
- container_of 和 offsetof 解析