CSS学习:CSS动画

1、过渡(transition)

过渡(transition)可以为一个元素在不同状态之间切换的时候定义不同的过渡效果。同时提供了一种在更改 CSS 属性时控制动画速度的方法。

1.1属性值

1.1.1 transition-property

transition-property 用于指定哪个或哪些 CSS 属性用于过渡。只有指定的属性才会在过渡中发生动画,其他属性仍如通常那样瞬间变化。

   /* 语法 */
   transition-property: 过渡属性的名称
   /* 取值 */
   none: 没有过渡动画
   all:  所有可被动画的属性都表现出过渡动画
   属性名: 需要过渡属性的名称
   /* 示例 */
   transition-property: none;
   transition-property: all;
   transition-property: width, height, opacity, left, top;

1.1.2 transition-duration

transition-duration 用于设置属性以秒或毫秒为单位,指定过渡动画所需的时间。默认值为 0s,表示不出现过渡动画。

   /* 语法 */
   transition-duration: 动画所需的时间
   /* 取值 */
   <time>类型  
   /* 示例 */
   transition-duration: 3s;
   transition-duration: 1s 2s 3s;
   /* 注意 */
   1. 有多个过渡时间以 , 隔开(如示例2),
   并且每个时长会被应用到由 transition-property 指定的对应属性上
   2. 时间默认为0,表示不会呈现过渡动画,属性会瞬间完成转变, 不能为负值

1.1.3 transition-delay

transition-delay 用于规定在过渡效果开始作用之前需要等待的时间,即延迟多久执行动画。

   /* 语法 */
   transition-delay: 过渡等待的时间
   /* 取值 */
   <time>类型
   /* 示例 */
   transition-delay: 3s;
   transition-delay: 1s 2s 3s;
   /* 注意 */
   1. 有多个等待时间以 , 隔开(如示例2),
   并且每个时长会被应用到由 transition-property 指定的对应属性上
   2. 时间默认为0,取值为正时会延迟一段时间来响应过渡效果;取值为负时会导致过渡立即开始。

1.1.4 transition-timing-function

transition-timing-function 用于规定在过渡效果执行时采取的时序函数。

   /* 语法 */
   transition-timing-function: 时序函数
   /* 取值 */
   <timing-function>类型 
   linear:      匀速运动
   ease:        慢速开始,先加速后减速 [ 默认值 ]
   ease-in:     加速运动
   ease-out:    减速运动
   ease-in-out: 先加速后减速
   cubic-bezier(): 贝塞尔曲线  
   steps():     分步执行过渡效果 
                - end,在时间结束时执行过渡(默认值)
                - start,在时间开始时执行过渡
   /* 示例 */
   transition-timing-function: ease-out;
   transition-timing-function: steps(8, end);

2、动画(animation)

动画(animation)与过渡类似,都是可以实现一些动态的效果,不同的是

  • 过渡需要在某个属性发生变化时才会触发
  • 动画可以自动触发动态效果

1.1属性值

1.1.1 animation-name

animation-name 用于指定应用的一系列动画,每个名称代表一个由@keyframes 定义的动画序列。@keyframes 通过在动画序列中定义关键帧的样式来控制 CSS 动画序列中的中间步骤。和转换 transition 相比,关键帧 keyframes 可以控制动画序列的中间步骤。

   /* 语法 */
   animation-name: 动画名称
   /* 取值 */
   none: 特殊关键字,表示无关键帧
   动画名称: 自定义的关键帧名字
   /* 示例 */
   @keyframes magnify {
        /* 动画开始位置 也可以使用 0%*/
        from{ width:10px;height:10px; }
        /* 动画结束位置 也可以使用 100%*/
        to{ width:20px;height:20px; }
   }
   .box{   /* 设置动画 */
        animation-name: magnify ;
   }  
   /* 注意 */
   1.如果多个关键帧使用同一个名称,以最后一次定义的为准。
   2.如果某一个关键帧出现了重复的定义,且重复的关键帧中的 CSS 属性值不同,
     则以最后一次定义的属性为准。
   3.关键帧中出现的 !important 将会被忽略。

1.1.2 animation-duration

animation-duration 用于设置动画完成一个动画周期所需的时间。

   /* 语法 */
   animation-duration: 动画名称
   /* 取值 */
   <time>类型
   /* 示例 */
   animation-duration: 3s;
   animation-duration: 1s 2s 3s;

1.1.3 animation-delay

动画效果的延迟,等待一段时间后再执行动画。

1.1.4 animation-timing-function

动画的时序函数,与transition-timing-function取值和用法一致。

1.1.5 animation-iteration-count

动画执行的次数。

   /* 取值 */
   <number>类型: 默认为 1。可以指定非整数值以播放动画循环的一部分:
                    例如,0.5 将播放动画循环的一半。负值是无效的。
   infinite:     无限循环播放动画
   /* 示例 */
   animation-iteration-count: 3.5;
   animation-iteration-count: 2, 0, infinite;

1.1.6 animation-direction

指定动画运行的方向。

   /* 取值 */
   normal:  每个循环内动画向前循环,换言之,每个动画循环结束,
            动画重置到起点重新开始,这是默认属性。
           
   alternate:  动画交替反向运行,反向运行时,动画按步后退,
               同时,带时间功能的函数也反向,比如,ease-in 在反向时成为   
               ease-out。计数取决于开始时是奇数迭代还是偶数迭代
              
   reverse:    反向运行动画,每周期结束动画由尾到头运行。
  
   alternate-reverse: 反向交替,反向开始交替。动画第一次运行时是反向的,
                         然后下一次是正向,后面依次循环。
                         决定奇数次或偶数次的计数从 1 开始。

1.1.7 animation-play-state

设置动画的执行状态。

/* 取值 */

running: 当前动画正在运行。

paused: 当前动画已被停止。

1.1.8 animation-fill-mode

动画的填充模式。

设置 CSS 动画在执行之前和之后如何将样式应用于其目标。

   /* 取值 */
   none:      动画执行完毕,元素回到原来位置,默认值
   forwards:  动画执行完毕,元素会停止在动画结束的位置
   backwards: 动画延时等待时,元素就会处于开始位置
   both:      结合了forwards和backwards

3、变换(transform)

变换(transform)属性用于旋转,缩放,倾斜或平移给定元素。变形不会影响到页面的布局。

3.1 属性值

3.1.1 translate平移

通过 translate 可以使元素沿着x、y或z平移指定的距离。可以单独声明平移变换,并独立于 transform 属性。

   /*        不独立声明         */
   /* 使用 */ 
   transform: translateX(10px);
   /* 取值 */
   translateX() 沿着x轴方向平移
   translateY() 沿着y轴方向平移
   translateZ() 沿着z轴方向平移
   
   /*        独立声明         */
   /* 使用 */ 
   translate: 105px;
   /* 取值 */
   1. 一个长度值或百分比,表示二维平移,与声明了 X 轴和 Y 轴的平移一样(此时省略的第二个值默认为 0)
   2. 两个长度值或百分比表示在二维上分别按照指定 X 轴和 Y 轴的值进行的平移
   3. 三个长度值或百分比,表示分别指定 X 轴、Y 轴、Z 轴的值进行三维平移

3.1.2 rotate旋转

通过 rotate 可以使元素沿着x、y或z旋转指定的角度。可以单独声明,并独立于 transform 属性。

   /*        不独立声明         */
   /* 使用 */ 
   transform: rotateY(180deg);
   /* 取值 */
   rotateX() 绕着x轴方向旋转
   rotateY() 绕着y轴方向旋转
   rotateZ() 绕着z轴方向旋转
   
   /*        独立声明         */
   /* 使用 */ 
   rotate: 90deg;
   /* 取值 */
   1. 角度值
        deg:  度      一个完整的圆是 360deg
        grad: 百分度  一个完整的圆是 400grad 
        rad:  弧度    一个完整的圆是 2π 弧度 , 1rad 是 180/π 度
        turn: 圈数    一个完整的圆是 1turn
   2. x, y 或者 z 轴名称加上角度值
        rotate: x 90deg;
        rotate: y 0.25turn;
        rotate: z 1.57rad;
   3. 向量加上角度值
   4. none

3.1.3 scale缩放

通过scale可以对元素进行缩放。

/* 取值 */

scaleX() 水平方向缩放

scaleY() 垂直方向缩放

scale() 双方向的缩放


 版权声明:本文章均是以下链接作者原创的内容,我只是学习的时候敲打加深印象,更详细的搜索以下链接。

原创作者:阿 湫
                        
原文链接:https://blog.csdn.net/qq_51247028/article/details/129875386

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值