CSS笔记——3D

这篇博客介绍了CSS中的3D效果,包括三维坐标系和透视原理,透视属性perspective的使用,详细讲解了3D位移translate3d的语法和应用,3D旋转rotate3d的多种旋转方式以及左手准则,还探讨了3D呈现transform-style对子元素的影响,最后给出了实际的应用示例,如旋转木马效果。
摘要由CSDN通过智能技术生成

一、三维坐标系 和 透视

透视 perspective

  • 网页产生3D效果需要透视
  • 模拟人类的视觉位置,可认为安排一只眼睛去看
  • 透视也称为视距:视距就是人的眼睛到屏幕的距离
  • 越近成像越大,越远成像越小;即Z轴越大,成像越大
  • 透视的单位是像素
  • 透视写到3D元素的父盒子上

二、3D位移 translate3d(x,y,z)

2.1 语法

  • translate3dX();  左右
  • translate3dY(); 上下
  • translate3dZ();   内外 Z轴上一般用精确单位(px)
  • translate3d(x,y,z);  xyz不能省略 如果没有就写0

三、3D旋转rotate3d

3.1 语法

  • transform:rotateX(ndeg); 沿着x轴旋转n度;正值:后仰;负值:前倾
  • transform:rotateY(ndeg);
  • transform:rotateZ(ndeg);
  • transform:rotate(x,y,z,ndeg);沿着自定义轴旋转  (1,1,0)沿着对角线

3.2 旋转方向:左手准则

四、3D呈现 transform-style

  • 控制子元素是否开启三维立体环境
  • transform-style:flat 子元素不开启3d立体空间 默认的
  • transform-style:preserve-3d;子元素开启立体空间
  • 代码写给父级,影响的是盒子

五、应用

  1. 移动写在旋转前面 transform: translateY(15px) rotateX(-90deg);

旋转木马

        body {
            perspective: 1200px;
        }
        .box {
            transform-style: preserve-3d;
            position: relative;
            margin: 200px auto;
            height: 200px;
            width: 300px;
            animation: dog1 5s infinite linear;
        }
        .box div {
            position: absolute;
            top: 0;
            right: 0;
            width: 100%;
            height: 100%;
            background: url('img/dog.jpg');
        }

        /* 现移动 再旋转 */
        .box div:nth-child(1) {
            transform: translateZ(300px);
        }
        .box div:nth-child(2) {
            transform: rotateY(-60deg) translateZ(300px);
        }
        .box div:nth-child(3) {
            transform: rotateY(-120deg) translateZ(300px);
        }
        .box div:nth-child(4) {
            transform: rotateY(-180deg) translateZ(300px);
        }
        .box div:nth-child(5) {
            transform: rotateY(-240deg) translateZ(300px);
        }
        .box div:nth-child(6) {
            transform: rotateY(-300deg) translateZ(300px);
        }
        @keyframes dog1 {
            0% {}
            100% {
                transform: rotateY(360deg);
            }
        }
        .box:hover {
            animation-play-state: paused;
        }

视频地址

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值