空间转换和动画

一、3D空间转换

1、3D坐标系:3D坐标系比2D 多了一个Z轴

 水平方向为X轴 向右移动为正值,向左移动为负值

垂直方向为Y轴 向下移动为正值,向上移动为负值

人的目光看向电脑屏幕的方向为Z轴 从电脑屏幕到人的眼睛方向为正值,从电脑屏幕到里面为负值

2、3D位移

完整写法:teansform:translate3d(x,y,z)

只不过很多情况下我们会选择分开来写

teansform:translateX(100px)

teansform:translateY(100px)

teansform:translateZ(100px)

3、透视效果

正常情况下,在我们现实生活中,我们看远处的物体都是比较小 比较虚幻的,看近处的物体时,都是比较大 比较清晰的

所以在空间转换时,为元素添加近大远小、近实远虚的视觉效果

3D直观效果

在代码中, perspective:数字+px 就可以实现这个效果,其中的数字代表着我们的眼睛到屏幕之间的距离,所以我们一般不会设置的特别大,也不会设置的特别小

因此(重点)注意:

其取值范围一般在800px~1200px之间

一定要给父元素添加

4、3D旋转

有了透视效果的加持,我们3D旋转效果会更加明显

rotateX 围绕x轴旋转,可以将x轴当做单杠,做单杠旋转

 

rotateY 围绕y轴旋转,类似于钢管舞

 

5、左手法则

可以更轻松地理解x轴、y轴的旋转

大拇指指向x轴正值方向,其余四指指向的方向便是旋转的正方向

大拇指指向y轴正值方向,其余四指指向的方向便是旋转的正方向

6、立体呈现

让子盒子在父盒子内有空间的展示,此时可以给父盒子添加

transform-style: preserve-3d;

3D旋转

二、动画        可以不用鼠标触发,自动的 反复的执行某些动画

1、动画分为定义 和 调用

        ①定义

定义动画有两种方式:

方法一:from作为初始状态        to作为结束状态

 @keyframes 动画名称 {

         from {

                transform: scale(1)

            }

            to {

                transform: scale(1.5)

            }

        }

        方法二:用百分比显示不同时段 所显示的动画

@keyframes 动画名称 {

            0% {

             transform: scale(1)

           }

       

           100% {

             transform: scale(1.5)

           }

        }

        ②调用

选择器{

       (使用动画) animation: (动画名称)move  (执行时间)2s  (匀速)linear  (循环)infinite 

2、动画属性

①动画名称参照css类选择器命名

②动画时长和延迟时间别忘了带单位 s

③infinite无线循环动画(重复次数)

④alternate 来回摆动,(就像以前的摆钟)

⑤forwards 动画结束后,停留在最后一帧状态,不循环状态使用

⑥linear 让动画匀速执行

3、鼠标经过时,暂停动画

鼠标经过box,ul暂停动画

.box:hover ul {
    animation-play-state: paused;
}

4、多组动画

当我们想要2个,甚至是多个动画一起执行时,它的一个复合写法

animation:动画1,动画2,...动画n

animation: moveone 1s steps(12) infinite, movetwo 5s linear forwards;

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值