一文看懂CSS3动画

2022-12-17 0 1,029

责任编辑将采用CSS3动画电影keyframes建立两个网页读取器,读取时带着四个红色格子乘风破浪形终端。它将向您展现怎样为读取网页结构设计HTML式样,建立动画电影的keyframes,并采用keyframes的动画电影延迟。

下列是你将在本讲义完结时制做的文本。

一文看懂CSS3动画

图中的四个红色格子,在网页读取操作过程中,呈现出菱形的颤动。

具体来说,先建立两个基本上的html文档:

<p>A simple representation of an animated bouncing loader!</p>

<div class=”loader”>

<span></span>

<span></span>

<span></span>

</div>

该文加进了两个名叫loader类的div。那个div负责管理建立大部份网页读取器原素。在那个div中,加进了四个已连续的span原素,每一原素则表示两个网页读取器格子。

第三步为网页表述基本上的CSS:

/*_ OPTIONAL: Styles for the demo. *_/

body {

background: #2C294F;

padding: 2rem;

}

p {

font: 1rem/1.45 “Operator Mono”;

color: #A599E9;

text-align: center;

}

那个代码块表述了p标记和主体的可选CSS式样。背景颜色,字体大小等属性可以根据自己的爱好更改。不过这些都不是动画电影所必须的式样,只是为了方便呈现出动画电影效果。

关键的表述是下面的.loader式样:

/_ CSS for animated bouncing loader. _/

.loader {

display: flex;

justify-content: center;

align-items: center;

}

这里我们采用Flexbox,也就是display:flex; 它将弹跳的网页读取器水平和垂直放置在网页中间。

/_ Loader circles _/

.loader > span {

background: #FAD000;

border-radius: 50%;

margin: 5rem 0.5rem;

animation: bouncingLoader 0.6s infinite alternate;

}

.loader > span:nth-child(2) {

animation-delay: 0.2s;

}

.loader > span:nth-child(3) {

animation-delay: 0.4s;

}

默认情况下,网页读取器的形状是方形的。我们要给它两个圆形形状,可以将边界半径设置为50%。.loader > span:nth-child(n)是指loader父原素下的第n个子原素。animation-delay是动画电影延后时间。

这里最有趣的部分是animation属性。我们采用了两个名叫bouncingLoader的动画电影keyframes,它每0.6s运行一次,并且无限重复。

表述动画电影的keyframes。keyframes用于表述动画电影行为,并让我们完全控制CSS动画电影的两个周期。我们将它表述为@keyframes,后面跟着动画电影的名字,在本例中是bouncingLoader

在@keyframe规则中,采用from和to两个关键字来指定动画电影的起始点和完结点。同样地,你也可以用0%则表示起点,用100%则表示动画电影的终点。

此外,如果您想要多个动画电影转换,您可以表述两个百分比范围,每一百分比包含两个式样选择器列表。这些百分比可以以任何顺序列出。这些百分比的简单则表示如下所示:

/_ Define the animation called bouncingLoader. _/

@keyframes bouncingLoader {

from {

width: 0.1rem;

height: 0.1rem;

opacity: 1;

transform: translate3d(0);

}

to {

width: 1rem;

height: 1rem;

opacity: 0.1;

transform: translate3d(0, -1rem, 0);

}

}

这采用了from和to关键字,它们表述了格子的宽度、高度和不透明度等基本上式样属性。Loader中每一圆圈的宽和高从0.1rem到width:1rem;和height:1rem; 除此之外,为了建立弹跳效果,采用CSS transform属性更改给定原素的坐标,从而转换每一格子的位置。

采用那个transform属性,采用了translate3D()函数,它接受四个输入来解释(x, y, z)坐标的变化。因为我们希望我们的装载机在波动运动中运行,我们需要主要沿着y轴平移,保持x轴和z轴不变。因此,完结点的值为(0,-1rem, 0)。

最后一部分。既然已经为@keyframe编写了代码,现在就该设置并运行它了。动画电影的运行是通过下列几行代码实现的(上面已显示过一次):

/_ Loader circles _/

.loader > span {

background: #FAD000;

border-radius: 50%;

margin: 5rem 0.5rem;

animation: bouncingLoader 0.6s infinite alternate;

}

.loader > span:nth-child(2) {

animation-delay: 0.2s;

}

.loader > span:nth-child(3) {

animation-delay: 0.4s;

}

采用animation属性和/或它的子属性对想要动画电影的原素进行式样设置。采用此属性可以控制动画电影的时间、持续时间和其他细节。

这里你已经采用了下列动画电影的子属性:

animation: animation-name, animation-duration, animation-iteration-count, animation-direction;

animation-name: 表述你的动画电影的名字,在我的例子中是读取器。

animation-duration: 配置动画电影完成两个循环的时间长度。

animation-iteration-count: 则表示你希望动画电影循环在停止前播放多少次。

animation-direction: 表述动画电影播放的方向。

除了这些,还有其他几个子属性。你可以在Mozilla Web文档中获得详细信息。

基于这些,责任编辑的动画电影表述如下:

animation: bouncingLoader0.6s infinite alternate;

这行代码做了下列三件事:

告诉loader原素采用keyframes bouncingLoader

设置动画电影的长度为0.6秒。

无限次地运行动画电影。在完成两个循环后,动画电影的方向就会发生变化,也就是反转。

你已经为弹跳读取器的第两个格子表述了这些属性。为了瞄准第二个(2)和第四个(3)格子,你采用了第n个子(n)选择器,它允许你选择和瞄准两个或多个原素,它们是父原素的第n个子原素。此外,对于其余的span原素,您刚刚表述了动画电影延后,因此每一原素不会同时开始动画电影,而是延后了表述时间后才开始,结果就是乘风破浪形状。

相关文章

发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务