码迷,mamicode.com
首页 > Web开发 > 详细

CSS3 动画

时间:2020-03-09 21:08:55      阅读:81      评论:0      收藏:0      [点我收藏+]

标签:iter   页面   现在   ase   百分比   sed   orm   ati   -name   

CSS3 动画

动画的基本使用

  • 制作动画分为两不
    • 先定义动画
    • 再使用(调用)动画
  • 用keyframes定义动画(类似定义类选择器)
@keyframes 动画名称 {
    0% {
        width: 100px;
    }
    100% {
        width: 200px;
    }
}
  • 元素使用动画
div {
    width: 200px;
    height: 200px;
    background-color: red;
    /* 动画名称 */
    animation-name: 动画名称;
    /* 持续时间 */
    animation-duration: 持续时间;
}
  • 动画序列
    • 0% 是动画的开始,100% 是动画的完成,这样的规划就是动画序列
    • @keyframes中规定某项CSS样式,就能创建由当前样式逐渐改为新样式的动画效果
    • 动画是使元素从一种样式逐渐变化为另一种样式的效果,您可以改变多的样式任意多的次数
    • 请用百分比来规定变化发生的时间,或用关键词 "from""to",等同于0%和100%
  • 现在我们来简单的体验一下
  • 我们想页面一打开,一张图片就从左边走到右边
<style>
    @keyframes move {
        /* 开始状态 */
        0% {
            transform: translateX(0px);
        }
        /* 结束状态 */
        100% {
            transform: translateX(500px);
        }
    }
   img {
       width: 150px;
       /* 动画名称 */
       animation-name: move;
       /* 持续时间 */
       animation-duration: 2s;
   }
</style>
<body>
    <img src="./u=986476525,3647648589&fm=11&gp=0.jpg" alt="">
</body>

技术图片

  • 上面我们实习的是一次的改变样式的效果
  • 当然,动画是可以做多个状态的变化的keyframs 关键帧

技术图片

@keyframes move {
            0% {
                transform: translate(0, 0);
            }
            25% {
                transform: translate(800px, 0);
            }
            50% {
                transform: translate(800px, 300px);
            }
            75% {
                transform: translate(0, 300px);
            }
            100% {
                transform: translate(0, 0);
            }
        }

技术图片

  • 注意
    • 里面的百分比必须要是整数
    • 里面的百分比就是总的时间的划分

动画常用属性

  • @keyframes规定动画
  • animation所有动画属性的简写属性,除了animation-play-state属性
  • animation-name是规定@keyframes动画的名称(必须的)
  • animation-duration是规定动画完成一个周期所花费的秒或毫秒(必须的)
    • 默认是 0
  • animation-timing-function是规定动画的速度曲线
    • 默认是"ease"动画以低速度开始然后加快,在结束前变慢
    • linear匀速
    • ease-in动画以低速开始
    • ease-out动画以低速结束
    • ease-in-out动画以低俗开始和结束
    • steps()指定了时间函数中的间隔数量(步长)
      • 就是分几步来完成我们的动画
      • 有了steps就不要在写ease或者linear
  • animation-delay是规定动画何时开始的
    • 默认是 0
  • animation-iteration-count是规定动画倍播放的次数
    • 默认是1
    • infinite无限次
  • animation-direction是规定动画是否在下一周期逆向播放
    • 默认是normal
    • alternate逆播放
  • animation-play-state规定动画是否在正在运行或暂停,可配合事件使用
    • 默认是running
    • paused暂停
  • animation-fill-mode是规定动画结束后状态
    • backwards回到起始
    • forwards保持结束位置

动画简写属性

  • 前面两个属性name duration一定要写,其它可以省略,不包括animation-play-state属性,顺序如下
  • animation:动画名称 持续时间 运动曲线 何时开始 播放次数 是否反方向 动画起始或者结束状态
  • animation: name duration timing-function delay iteration-count direction fill-mode;

CSS3 动画

标签:iter   页面   现在   ase   百分比   sed   orm   ati   -name   

原文地址:https://www.cnblogs.com/landuo629/p/12450758.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!