动画| 青训营笔记

89 阅读2分钟

这是我参与「第四届青训营 」笔记创作活动的第十三天

1. transition 属性

transition 属性设置元素当过渡效果,四个简写属性为:

  • transition-property 指定CSS属性的name,transition效果

  • transition-duration transition效果需要指定多少秒或毫秒才能完成

  • transition-timing-function 指定transition效果的转速曲线

  • transition-delay 定义transition效果开始的时候

注意: 始终指定transition-duration属性,否则持续时间为0,transition不会有任何效果。

2. 旋转 transform: rotate( deg))

img {

            width: 250px;

            /* 加上过渡才有动画效果 */

            transition: all 2s;

        }

        img:hover{

            /* 正顺,负逆 */

            transform: rotate(-360deg);

        }

3. 转换原点 transform-origin

语法:默认圆点是盒子中心

transform-origin:原点水平位置 原点垂直位置

取值:

  • 方位名词(left、top、right、bottom、center)

  • 像素单位取值

  • 百分比(参照盒子自身尺寸计算)

如:

/* 按右下角为中心旋转 */

            transform-origin: right bottom;

4. 缩放 transform:scale( x轴缩放倍数 y轴缩放倍数);

  • 一般transform:scale(缩放倍数);从中心点缩放

5. transform具有层叠性

如:transform:translate(-50%,-50%);与transform:  scale(5);

不会同时生效保留后者

transform: translate(-50%,-50%) scale(5);

6. 宽高快捷键:w58 h58 +enter

    width: 58px;

    height: 58px;

7. 快捷键div.mask +enter

<div class="mask"></div>

8.渐变 linear-gradient();

background-image: linear-gradient(

                /* 透明到不那么透明 */

                transparent,

                rgba(0,0,0, .6)

            );

9.  空间转换/3D转换 正值指向自己

空间位移

transform: translate3d(x,y,z);

但仅此不能实现空间移动,需加入透视。

10. 透视效果 perspective

  • 属性(添加给父级

  • 语法:Perspective:值;

  • 取值:像素单位数值,数值一般在800-1200px

  • 透视距离也就是视距,是人眼到屏幕的距离,近大远小。

11. 空间旋转 rotate

仍需给父级添加perspective以及自身添加transition: all .5s;

  • transform: rotateZ(360deg);沿着Z轴旋转

  • transform: rotateX(60deg);沿着X轴旋转 此时perspective实现透视效果,近实远虚

  • transform: rotateY(60deg);沿着Y轴旋转

左手法则:左手握住旋转轴,拇指指向正值方向,手指弯曲方向为旋转正值方向。

transform: rotat3dZ(x,y,z,角度度数);

用来自定义旋转轴的位置及旋转的角度

x,y,z取值为0-1之间的数字

不怎么用,了解即可

12. 立体呈现 transform-style:preserve-3d

  • 添加在父元素

  • transform-style默认值flat,表示元素处于2d平面内呈现

13.空间缩放

如:transform: scale3d(0.5, 1.1, 2);

14. 动画 animation

过渡只能实现2个状态间变化过程

动画:实现多个状态间的变化过程,动画过程可控(重复播放、最终画面、是否暂停)

使用方法:

1. 定义动画

@keyframes change {

            from {}

            to {}

@keyframes change {

            0% }

            50% {}

            100% {}
//百分比指的是动画总时长的占比
        }

2.使用动画 animation: 动画名称 动画花费时长;