css动画的基本使用方法

本文详细介绍了CSS中animation动画与transform属性的区别,animation能自动播放并可控制,而transform需手动触发。文章通过实例展示了如何定义和调用动画,并解释了各种关键帧语法和动画属性。此外,还提到了动画的暂停方法以及相关的重要动画属性值,如速度曲线、重复次数等。最后,给出了一个简单的动画效果展示。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

提问:animation动画与transform属性的区别

回答:比起transform需要手动触发,animation动画是自动播放的,并且可控,可循环播放,功能更加强大

接下来看一下动画实现的步骤:

第一步定义动画

    /* 方法一 */

    @keyframes  动画名{

         from{}

         to{}
    }

    /* 方法二*/

    @keyframes  动画名{

        0%{
          }
        50%{
          }
        100%{
          }
    }

    /* 例子 */
    @keyframes font {
      45%{
        transform: rotate(360deg) scale(3.5) 
      }
      80%{
        transform:  scale(2.7);
      }
      90%{
        transform:  scale(1.6);
      }
      100%{
        transform: scale(1.5);
      }
    }

注意:方法二中是%到100%都是可以定义的,在这里我只演示了三个值。如果动画开始时没有明显的变化,则0%和from{}可以省略不写。

第二步:调用动画

/* 语法提示 */ 
animation: name duration timing-function delay iteration-count direction fill-mode;

/* 举例*/
    .font{
      position: absolute;
      left: 0;
      right: 0;
      top: 0;
      bottom: 0;
      margin: auto;
      animation: font 1s  linear ;
    }

在css属性中,通过animation这个属性来调用动画

语法结构: animation:动画名称(必写)  动画时长(必写)  速度曲线   延迟时间   重复次数   动画方向   执行完毕时的状态

注意:取值不分先后顺序,如果有两个时间值,那么第一个时间表示动画时长,第二个时间表示动画播放的延迟时间

提醒:要想让运动的动画鼠标经过时停止,需要在运动的元素的选择器的hover伪类选择器里设置 animation-play-state: paused; 

 代码展示:

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>动画</title>
  <!-- 动画比过渡的优点在于,可以不需要手动操作就能实现自动播放和循环播放 过程可控 运动完之后停留在结束状态 -->
  <!-- 动画的使用分为两步:
  1.定义动画 动画名字可以自定义,理解成取类名
  2.使用动画 -->
  <style>
    .box{
      width: 100px;
      height: 100px;
      background-color: #eee8aa;
      margin: 100px auto;
      /* 使用动画 */
      /* 属性名: 动画名(必写) 运动时间(必写) 速度曲线 延迟时间 运动次数(infinite是无限的意思) 运动方向 执行完毕时的状态  */
      /* 速度曲线:linear(匀速线性运动) ease-in-out(开始和结束慢) */
      /* 运动方向:alternate 逆向播放 回来的那一次也算一次次数 */
      /* 结束状态:forward(停留在结束状态) 默认停留在起始状态 */
      animation: yundong 3s  2 linear forwards alternate;    
    }
    .box:hover{
      animation-play-state: paused;
    }
    /* 定义动画 */
    @keyframes yundong{
      form{
      }
     to{
      transform: translateX(600px) rotatey(360deg);
      }
    }
  </style>
</head>
<body>
  <div class="box">
    <h2>简单动画</h2>
  </div>
</body>
</html>

效果展示: 

该图片地址失效无法显示
一个简单的动画效果

目前用到的动画属性值
类别 属性值作用
曲线速率linear匀速线性运动
曲线速率steps(数字)逐帧动画(一般配合精灵图使用)
曲线速率ease-in-out慢速开始和结束
动画次数number定义运动的次数,默认是一次
动画次数infinite无限运动(反复横跳 不是)
动画方向alternate逆向运动(运动次数需要大于1才能看出效果)
动画终点none(默认值)默认终点是原点
动画终点forwards在运动结束的之后,停到结束位

以上内容,是自己在学习中总结出来的,有啥错误和补充欢迎在评论区留言~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值