transition过渡/transform变形/animation动画

980 阅读3分钟

「这是我参与11月更文挑战的第15天,活动详情查看:2021最后一次更文挑战

==1. CSS3==

CSS3是CSS的最新版本。 width height background border 都属于 CSS2.1 CSS3 会保留之前 CSS2.1的内容,只是添加了一些新的语法。

CSS3 : border-radius :nth-of-type() background-size

==2. transition过渡==

transition-property : 规定设置过渡效果的CSS属性的名称。 all ( 默认值 ) , 指定 width , height;

transition-duration : 规定完成过渡效果需要多少秒或毫秒。 需要添加单位:s (秒) ms (毫秒) 1s == 1000ms

transition-delay : 定义过渡效果何时开始。 2s : 延迟两秒进行过渡 -2s : 提前两秒进行过渡

transition-timing-function : 规定速度效果的速度曲线。 运动形式:加速、减速、匀速... linear ease(默认值) ease-in ease-out ease-in-out cubic-bezier ( cubic-bezier.com

复合写法: transition:all 2s linear; √ transition:linear 2s all; √ transition:2s linear all; √ 注意:当总时间与延迟时间同时存在的时候,就有顺序了,第一个是总时间,第二个是延迟时间。

transition:2s 3s linear all; √

注意:不要把transition放到hover中

==3. transform变形==

translate : 位移 transform:translate(100px,100px); : 两个值 分别对应 x 和 y。 transform:translateX(100px); transform:translateY(100px); transform:translateZ(100px); ( 3d )

scale : 缩放 transform:scale(num) num是一个比例值,正常比例是1。 transform:scale(num1 , num2) 两个值 分别对应 w 和 h transform:scaleX() transform:scaleY() transform:scaleZ() ( 3d )

rotate : 旋转 transform:rotate(num) num是旋转的角度 30deg 正值:顺时针旋转 负值:逆时针旋转 表示一个角:角度deg 或 弧度rad

rotateX() ( 3d )

rotateY() ( 3d )

rotateZ()

注 : rotate()跟rotateZ()是等价关系。

==四. 想做特效==

要确定:起点值和结束值。

套路

 1.先把静态的效果做出来。

 2. 把要运动的终点位置先做出。

 3. 指定 tranform变形中对应的 0 值 ( 结束点位置 ).

 4. 写 tranform变形的起点值 (起点的位置)
     

==五. animation动画==

原理:逐帧动画。会把整个运动过程,划分成100份。

animation-name : 设置动画的名字 (自定义的)
animation-duration : 动画的持续时间
animation-delay : 动画的延迟时间
animation-iteration-count : 动画的重复次数 ,默认值就是1 ,infinite无限次数
animation-timing-function : 动画的运动形式
    ease linear


@keyframes 动画的名字 {
    from {}   
    to {}
}

from : 起点位置 , 等价于 0%  to : 终点位置 ,等价于 100%
注:默认情况下,元素运动完毕后,会停到起始位置。

复合样式:
    animation

animation-fill-mode : 规定动画播放之前或之后,其动画效果是否可见。
 	none (默认值) : 在运动结束之后回到初始位置,在延迟的情况下,让0%在延迟后生效
	backwards  :  在延迟的情况下,让0%在延迟前生效
 	forwards  :  在运动结束的之后,停到结束位置
 	both  :  backwards和forwards同时生效

animation-direction  :  属性定义是否应该轮流反向播放动画。
 	alternate  :  一次正向(0%~100%),一次反向(100%~0%)
 	reverse : 永远都是反向 , 从100%~0%
 	normal (默认值) : 永远都是正向 , 从0%~100%

==六. animate.css==

一款强大的预设css3动画库。
  	官网地址:https://daneden.github.io/animate.css/
 		
基本使用:
    animated : 基类(基础的样式,每个动画效果都需要加)
    infinite : 动画的无限次数
    如果想改变运动的时间:需要在css文件中改变animated这个样式里的时间。

==七. 3D效果==

perspective(景深) : 离屏幕多远的距离去观察元素,值越大幅度越小。
    3D的眼镜

    rotateX
    rotateY
    translateZ
    scaleZ

    注:反馈回来的立体,仅限于平面。