前端:使用CSS3实现酷炫的3D旋转透视

2025-05-29 0 36

前端:使用CSS3实现酷炫的3D旋转透视

3D动画效果现在越来越普及,已经被广泛的应用到了各个平台,比如阿里云,华为云,webpack官网等。它可以更接近于真实的展示我们的产品和介绍,带来极强的视觉冲击感。所以说,为了让自己更加优秀,css3 3D动画必不可少。

你将学到

  • CSS3 3D 转换的常用API介绍
  • CSS3 3D 应用场景
  • CSS3 3D 实现一个立方体

开始

1.CSS3 3D 转换的常用API介绍

首先先上一张css 3D的坐标系:

前端:使用CSS3实现酷炫的3D旋转透视

接下来我们来介绍几个常用的api:

旋转

  • rotateX()
  • rotateY()
  • rotateZ() 以上几个api分别代表绕x,y,z轴旋转,如下例子为绕x轴旋转的例子:

前端:使用CSS3实现酷炫的3D旋转透视

相关代码如下:

<style>

.d3-wrap{

position:relative;

width:300px;

height:300px;

margin:120pxauto;

/*规定如何在3D空间中呈现被嵌套的元素*/

transform-style:preserve-3d;

transform:rotateX(0)rotateY(45deg);

transform-origin:150px150px150px;

}

.rotateX{

width:200px;

height:200px;

background-color:#06c;

transition:transform2s;

animation:rotateX6sinfinite;

}

@keyframesrotateX{

0%{

transform:rotateX(0);

}

100%{

transform:rotateX(360deg);

}

}

</style>

<divclass="d3-wrap">

<divclass="rotateX"></div>

</div>

位移(Transform)

  • translateX(x) 定义 3D 转化,仅使用用于 X 轴的值
  • translateY(y) 定义 3D 转化,仅使用用于 Y 轴的值
  • translateZ(z) 定义 3D 转化,仅使用用于 Z 轴的值 以上几个api分别代表相对x,y,z轴的位移,如下例子为向z轴位移的例子:

前端:使用CSS3实现酷炫的3D旋转透视

这里我们需要注意的是为了能看出位移的效果,我们需要在父容器上加如下属性:

.d3-wrap{

transform-style:preserve-3d;

perspective:500;

/*设置元素被查看位置的视图*/

-webkit-perspective:500;

}

当为元素定义 perspective 属性时,其子元素会获得透视效果,而不是元素本身。代码如下:

.d3-wrap{

position:relative;

width:300px;

height:300px;

margin:120pxauto;

transform-style:preserve-3d;

perspective:500;

-webkit-perspective:500;

transform:rotateX(0)rotateY(45deg);

transform-origin:centercenter;

}

.transformZ{

width:200px;

height:200px;

background-color:#06c;

transition:transform2s;

animation:transformZ6sinfinite;

}

@keyframestransformZ{

0%{

transform:translateZ(100px);

}

100%{

transform:translateZ(0);

}

}

3D缩放

  • scaleX(x) 给定一个 X 轴的3D 缩放转换值
  • scaleY(x) 给定一个 Y 轴的3D 缩放转换值
  • scaleZ(x) 给定一个 Z 轴的3D 缩放转换值 缩放设置和上面的类似,这里就不做过多介绍了。

理论上说以上三种常见变换已经够用了,值得关注的是我们要想让元素呈现出3D效果,以下不可忽视的API也很重要:

前端:使用CSS3实现酷炫的3D旋转透视

2.CSS3 3D 应用场景

css 3D主要应用在网站的交互和模型效果上,比如:

  • 3D轮播图
  • 3D产品介绍
  • 室内3D仿真
  • h5 3D活动页面,比较典型的就是某年淘宝的年终总结H5
  • 3D数据可视化成图
  • 3D模型图 其实如果css 3D用的熟悉了,一些基本的3D模型完全可以用css画出来。

3.CSS3 3D 实现一个立方体

前端:使用CSS3实现酷炫的3D旋转透视

核心思路就是用6个面去拼接,通过设置rotate和translate来调整相互之间的位置,如下:

前端:使用CSS3实现酷炫的3D旋转透视

具体代码如下:

.container{

position:relative;

width:300px;

height:300px;

margin:120pxauto;

transform-style:preserve-3d;

/*为了让其更有立体效果*/

transform:rotateX(-30deg)rotateY(45deg);

transform-origin:150px150px150px;

animation:rotate6sinfinite;

}

.container.page{

position:absolute;

width:300px;

height:300px;

text-align:center;

line-height:300px;

color:#fff;

background-size:cover;

}

.container.page:first-child{

background-image:url(./my.jpeg);

background-color:rgba(0,0,0,.2);

}

.container.page:nth-child(2){

transform:rotateX(90deg);

transform-origin:00;

transition:transform10s;

background-color:rgba(179,15,64,0.6);

background-image:url(./my2.jpeg);

}

.container.page:nth-child(3){

transform:translateZ(300px);

background-color:rgba(22,160,137,0.7);

background-image:url(./my3.jpeg);

}

.container.page:nth-child(4){

transform:rotateX(-90deg);

transform-origin:-300px300px;

background-color:rgba(210,212,56,0.2);

background-image:url(./my4.jpeg);

}

.container.page:nth-child(5){

transform:rotateY(-90deg);

transform-origin:00;

background-color:rgba(201,23,23,0.6);

background-image:url(./my5.jpeg);

}

.container.page:nth-child(6){

transform:rotateY(-90deg)translateZ(-300px);

transform-origin:0300px;

background-color:rgba(16,149,182,0.2);

background-image:url(./my6.jpeg);

}

html结构

<divclass="container">

<divclass="page">A</div>

<divclass="page">B</div>

<divclass="page">C</div>

<divclass="page">D</div>

<divclass="page">E</div>

<divclass="page">F</div>

</div>

扩展

我们可以基于上面介绍的,给父元素添加动画或者拖拽效果,这样就可以做成更有交互性的3D方块了,比如置骰子游戏,vr场景,3D相册等等,具体实现我会抽空依次总结出来。

原文地址:https://mp.weixin.qq.com/s/mkUDRpJbW7O0exUeNE3-MA

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

快网idc优惠网 建站教程 前端:使用CSS3实现酷炫的3D旋转透视 https://www.kuaiidc.com/94601.html

相关文章

发表评论
暂无评论