美文网首页技术干货
css实现简单的3D效果

css实现简单的3D效果

作者: 唔六 | 来源:发表于2019-02-12 11:26 被阅读0次

css实现简单3D房间效果

最终效果图

纯3D效果实现上述效果,总体思路就是旋转容器,为容器贴纸。

这是一个简单的3D立方体空间,我们需要四个墙壁,分别贴在上下左右,因此html结构为

<div class="container">
    <div class="wall"></div>
    <div class="wall"></div>
    <div class="wall"></div>
    <div class="wall"></div>
</div>

然后,针对整个container容器,我们只需要设置它铺满整个空间。然后我们需要对整个容器设置 perspective。设置这个属性整个容器才有z轴方向上的距离。

.container {
    height: 100%;
    width: 100%;
    perspective: 500px;
}

而后,继续分析四个 div.wall属性,我们需要将他们放在四个方向,当做整个空间的“墙面”。

先分析“墙面”大小,上下墙面(左右墙面)宽高应该保持一致。

上下墙面的宽应该和容器宽度一致,左右墙面的高和容器高度一致,左右墙面的宽和上下墙面的高一致。因此,我们这样设置

.wall(上下墙面){
    width: 100%;
    height: 80vh;
}
.wall(左右墙面){
    width: 80vh;
    heigth: 100%;
}

接着将一个wall元素放在上墙面,上墙面必须和容器的y轴垂直,假设容器的高宽深为1000px, 1000px, 500px,那么上墙面应该是(x,1000px,z)这个平面。(在设计元素旋转的时候一定要清楚为什么要这样旋转)。

默认的面是(x, y, 0)。问题转化为通过旋转使得

(x, y, 0) \rightarrow (x,1000px, z)

两个面的夹脚为90度(面面夹角计算公式),因此旋转角度为90度。

哪个属性不发生变化,就绕哪个轴进行旋转。

  • 保证y值始终为1000px,设置 top = 0
  • 绕x轴旋转90度。
.wall:上墙面{
    top: 0;
    transform: rotateX(-90deg)
}

同理,可以得出下墙面和左右墙面的旋转角度。

下面,可以给墙面贴图,下载一个背景图片,然后添加到墙面上。于是则有css如下:

.container .wall:nth-child(1) {
      transform-origin: center top;
      width: 100%;
      height: 80vh;
      transform: rotateX(-90deg);
      border-top: 3vh solid cyan;
      top: 0;
      background-image: url(../images/cf.png); }
.container .wall:nth-child(2) {
      transform-origin: center bottom;
      width: 100%;
      height: 80vh;
      transform: rotateX(90deg);
      border-top: 3vh solid cyan;
      bottom: 0;
      background-image: url(../images/cf.png); } 
.container .wall:nth-child(3) {
      transform-origin: center left;
      transform: rotateY(90deg);
      width: 80vh;
      height: 100%;
      left: 0;
      border-right: 3vh solid cyan;
      background-image: url(../images/dm.png); }
    .container .wall:nth-child(4) {
      transform-origin: center right;
      transform: rotateY(-90deg);
      width: 80vh;
      height: 100%;
      right: 0;
      border-left: 3vh solid cyan;
      background-image: url(../images/dm.png); }

相关文章

  • css实现简单的3D效果

    css实现简单3D房间效果 纯3D效果实现上述效果,总体思路就是旋转容器,为容器贴纸。 这是一个简单的3D立方体空...

  • 随手收集

    one div实现icon one div 实现动态天气 css实现文字3D CSS实现文本干扰效果 CSS实现文...

  • 使用纯CSS代码实现3D旋转效果

    主要使用CSS中的 preserve-3d 、perspective 属性实现3D效果 效果 HTML代码 为了演...

  • web前端特效演示合集

    前端特效01:使用纯CSS实现书籍3D翻页效果 前端特效02:使用纯CSS实现动态太极 前端特效03:HTML5画...

  • 用CSS3制作3D图片环

    上一篇文章讲了利用css3制作3D图片爆炸效果,现在我们同样用css3制作3D图片环,我们先看一下实现的效果图:刚...

  • 3D立方体

    CSS3确实很强大,很多高大上的动画都可以实现,这里来实现下3D立方体,效果图如下: html 其实,实现3D立方...

  • css实现炫酷的圆环相交转动动画

    1.实现效果 2.实现原理 CSS perspective 属性:属性定义 3D 元素距视图的距离,以像素计。该属...

  • UIView transitionFromView导致子视图Co

    项目开发需要实现一个简单的效果,一个音乐专辑,需要实现定时反复3D旋转的效果,这个效果很简单,利用iOS自带的动画...

  • 简单的图片hover翻转效果

    html css tip: 主要是利用css3的3d翻转效果

  • h5 左侧导航栏 (1)

    贴图看效果 很简单的代码 就是h5加点css配合实现的效果

网友评论

    本文标题:css实现简单的3D效果

    本文链接:https://www.haomeiwen.com/subject/lwbheqtx.html