CSS动画

2022-07-10  本文已影响0人  饥人谷_折纸大师

今天我要总结的是有关于CSS动画相关的知识已经一些注意点。
CSS中的动画离不开浏览器的渲染,首先先介绍一下浏览器的渲染相关的问题。

浏览器的渲染

首先是浏览器的渲染过程:

如何更新

接下来涉及到的是如果我们需要修改动画如何做到更新呢?一般来讲我们采用JS来进行样式更新,而且加类比加样式更方便一点。
有三种更新方式,

CSS优化

CSS动画的两种做法

我们通过transform可以实现元素由a状态到达b状态,但是我们看不到变化的过程,这时我们需要添加transition属性,来让变化可视。

transition属性

transtion属性的作用是补充关键帧。
下面有关它的语法:

transition: left 200ms linear;
transition: left 200ms, top 400ms;
transition: all 200ms;

其中它的过渡方式有:

    <style>
        #demo {
            width: 100px;
            height: 100px;
            margin: 50px;
            border: 1px solid red;
            transition: transform 1s linear;
        }

        #demo.b {
            transform: translateX(200px);
        }

        #demo.c {
            transform: translateX(200px) translateY(200px);
        }
    </style>

做好动画,下面是js代码

    <script>
        button.onclick = () => {
            demo.classList.add('b')
            setTimeout(() => {
                demo.classList.add('c')
            }, 1000)
        }
    </script>

即可实现上述要求
第二种用法是使用animation

animation

作用:声明关键帧,添加动画
animation的缩写语法
animation:时长|过渡方式|延迟|次数|方向|填充模式|是否暂停|动画名

@keyframes完整语法

一种是from to

@keyframes xxx {
from {
transform: translateX(0%);
}

to {
transform: translateX(100%);
}
}

另一种是百分数

@keyframes xxx {
0% {
top: 0;
left: 0;
}

50% {
top: 50px;
}

100% {
top: 100px;
left: 50px;
}

注意:加个forawards即可以实现让动画停留在最后一帧

我们在使用CSS的时候虽然CSS的属性比较简单,但是它们组合起来却可以实现很复杂的效果,所以说,CSS的上限取决于我们的想象力,只要我们的想象力足够丰富,那么CSS便可以实现更多天马行空的效果。

上一篇 下一篇

猜你喜欢

热点阅读