zl程序教程

您现在的位置是:首页 >  工具

当前栏目

CSS笔记(25)之动画animation

动画笔记CSS 25 animation
2023-06-13 09:12:59 时间

CSS3动画

动画(animation)是CSS3中具有颠覆性的特征之一,可通过设置多个节点来精确控制一个或一组动画,常用来实现复杂的动画效果.

相比较过渡,动画可以实现更多变化,更多控制,连续自动播放等效果.

动画的基本使用

制作动画分两步:

  1. 先定义动画
  2. 再使用(调用)动画.

用keyframes定义动画(类似定义类选择器)

@keyframes 动画名称 {

0% {

width:100px;

}

100% {

height:200px;

}

}

动画序列

  • 0%是动画的开始,100%是动画的完成,这样的规则就是动画序列,里面的百分比就是总的时间的划分.
  • 在@keyframes中规定某项CSS样式,就能创建由当前样式逐渐改成新样式的动画效果.
  • 动画是使元素从一种样式逐渐变化为另一种样式的效果,你可以改变任意多的样式任意多的次数.
  • 请用百分比来规定变化发生的时间,或用关键词'from'和'to',等同于0%和100%.

元素使用动画

div {

animation-name:动画名称;

animation-duration:持续时间;

}

现在尝试做一个动画效果,还是非常好玩的,不需要鼠标经过,自动就会有动画.

 <style>
        @keyframes move {
            0% {
                transform: translate(0px, 0px)
            }

            50% {
                transform: translate(100px, 100px);
            }

            100% {
                transform: translate(200px, 0px);
            }
        }

        .box {
            width: 200px;
            height: 200px;
            background-color: forestgreen;
            animation: move 2s;
        }
</style>
</head>

<body>
    <div class="box"></div>
</body>

动画简写属性

animation:动画名称 持续时间 运动曲线 何时开始 播放次数 是否反方向 动画起始或者结束的状态;

注意:前两个属性是一定要写的,持续时间和何时开始的时间是有顺序的.

注意:

  • 简写属性里面不包括animation-play-state,需要自己手动输入.
  • 暂停动画:animation-play-state: paused;经常与鼠标经过等其他配合使用.
  • 想要动画走回来,而不是直接跳回来:animation-direction: alternate.
  • 盒子动画结束后,停在结束位置: animation-fill-mode: forwards.

做了一个案例,极其麻烦.(对不起台湾的位置有点定偏了)看了一下居然和老师的差不多但是老师做的更好看,用到了阴影,这样会有波纹的效果.

看看跟着老师做的,回头看自己的简直太low了哈哈哈.

自己做的时候那个圆一直搞不到同心圆,总是偏,一会好好研究一下...

研究了一下发现很奇怪...小圆圈放大的时候是顶着盒子的上边框和左边框方法的,就是不是以圆的中心放大...但是用了translate以后就可以了...不知道为什么,今天先睡啦,明天再看看吧.

速度曲线

其中steps步长的意思就是分几步完成动画.

举个例子:

现在做一个小熊奔跑案例,原图是这样的.

现在要使用步长来实现奔跑的效果,自己做了一下,效果如下,还是挺好玩的.

跑起来: