「趣学前端」昨天画了一张小滑板,今天看我用CSS让它滑起来

简介: 用技术实现梦想,用梦想打开创意之门。今天分享前端CSS中的transform知识点。

背景

我身边一些非互联网技术从业的朋友,偶尔看我转发到朋友圈的文章,会表示出一定的兴趣。前段时间,有朋友问我公众号的问题,所以我来了灵感,准备写一个趣学前端系列,适用于零基础、新手前端或者想把编程当做兴趣培养的人。

学问必须合乎自己的兴趣,方可得益。 ——莎士比亚

上篇习题解析

上一篇结尾留了一个小习题,先来看看,3D环绕旋转的效果是如何实现的。(点击查看完整代码)

想要实现动画效果,需要借助CSS提供的animation属性,来设置元素的动画效果。

3D环绕的旋转动画,其实就是一个从某个角度到另外一个角度的过度,然后配合循环播放的动画效果。

水平的旋转,是元素沿着Y轴在运动。所以设置的过度效果是沿着 Y 轴的 3D 旋转。即transform: rotateY(360deg)。


知识点讲解

动画有趣不,今天就来聊聊animation动画属性。

动画效果

类型

效果展示

实现方案

滑滑板

元素的animation属性可以实现动画效果。

如果想要动画循环, animation-iteration-count属性不设置值,默认是无限次播放。

滑板没有设置 animation-iteration-count的值,所以是循环滑动的。

玻璃球碰撞

为元素添加animation-delay的属性值,可以实现元素的动画延迟开始的效果。

第一个玻璃球先开始,到达第二个玻璃球的时间为2s,所以第二个玻璃球设置的animation-delay属性值为2s。

跳动的篮球

🏀篮球因为拥有弹力,所以在拍动的时候,可以触及到地面之后弹起来。

元素的animation-timing-function 属性可以定义如何完成动画周期,可以设置完成速度是曲线的,可以先快后慢或者先慢后快。

工作中的时钟

时钟的时针和分钟顺时针转动一圈。设置开头动画从角度0开始,结束动画到达角度360度,便可以完成顺时针一圈。


知识点

以下知识内容来自于菜鸟教程

属性名

作用

属性值

animation

设置元素动画效果。

animation-name:指定要绑定到选择器的关键帧的名称

animation-duration:动画指定需要多少秒或毫秒完成

animation-timing-function:设置动画将如何完成一个周期

animation-delay 设置动画在启动前的延迟间隔。

animation-iteration-count:定义动画的播放次数。

animation-direction:指定是否应该轮流反向播放动画。

animation-fill-mode:规定当动画不播放时(当动画完成时,或当动画有一个延迟未开始播放时),要应用到元素的样式。

animation-play-state:指定动画是否正在运行或已暂停。

initial:设置属性为其默认值。 阅读关于 initial的介绍。

inherit:从父元素继承属性。 阅读关于 initinherital的介绍。

animation-delay

属性定义动画什么时候开始。

time:可选。定义动画开始前等待的时间,以秒或毫秒计。默认值为0。

animation-direction

属性定义是否循环交替反向播放动画。

normal:默认值。动画按正常播放。

reverse:动画反向播放。

alternate:动画在奇数次(1、3、5...)正向播放,在偶数次(2、4、6...)反向播放。

alternate-reverse:动画在奇数次(1、3、5...)反向播放,在偶数次(2、4、6...)正向播放。

initial:设置该属性为它的默认值。请参阅 initial。

inherit:从父元素继承该属性。请参阅 inherit。

animation-duration

属性定义动画完成一个周期需要多少秒或毫秒。

time:指定动画播放完成花费的时间。默认值为 0,意味着没有动画效果。

animation-fill-mode

属性规定当动画不播放时(当动画完成时,或当动画有一个延迟未开始播放时),要应用到元素的样式。

none:默认值。动画在动画执行之前和之后不会应用任何样式到目标元素。

forwards:在动画结束后(由 animation-iteration-count 决定),动画将应用该属性值。

backwards:动画将应用在 animation-delay:定义期间启动动画的第一次迭代的关键帧中定义的属性值。这些都是 from 关键帧中的值(当 animation-direction 为 "normal" 或 "alternate" 时)或 to 关键帧中的值(当 animation-direction 为 "reverse" 或 "alternate-reverse" 时)。

both:动画遵循 forwards 和 backwards 的规则。也就是说,动画会在两个方向上扩展动画属性。

initial:设置该属性为它的默认值。请参阅 initial。

inherit:从父元素继承该属性。请参阅 inherit。

animation-name

属性为 @keyframes 动画指定名称。

keyframename:指定要绑定到选择器的关键帧的名称

none:指定有没有动画(可用于覆盖从级联的动画)

animation-play-state

属性指定动画是否正在运行或已暂停。

paused:指定暂停动画。

running:指定正在运行的动画。

animation-timing-function

指定动画将如何完成一个周期。

linear:动画从头到尾的速度是相同的。

ease:默认。动画以低速开始,然后加快,在结束前变慢。

ease-in:动画以低速开始。

ease-out:动画以低速结束。

ease-in-out:动画以低速开始和结束。

steps(int,start|end):指定了时间函数中的间隔数量(步长)。有两个参数,第一个参数指定函数的间隔数,该参数是一个正整数(大于 0)。 第二个参数是可选的,表示动画是从时间段的开头连续还是末尾连续。含义分别如下:

start:表示直接开始。

end:默认值,表示戛然而止。

cubic-bezier(n,n,n,n) 在 cubic-bezier 函数中自己的值。可能的值是从 0 到 1 的数值。

讲解代码

讲解代码放到了在线预览平台


讲解代码操作步骤

演示代码都可通过代码复制拷贝到本地的IDE中进行演示。也可以自己照着敲击学习。

第一步:选中一个想查看代码的功能项;

第二步:将查看的功能的代码进行复制;

第三步:将代码粘贴到一个空档html文档中;

第四步:运行这个新建的html文档,刚才的顶部模块功能就出来啦。

一个小习题

表格在网页中是很常见的一种展示数据的方式。默认的表格是没有颜色等样式的。

下图中的高亮的表头、隔行高亮的效果是如何实现的呢?解答方案会在下篇文章中给出。

总结

如果说transform的旋转跳跃间,可以实现各式各样好玩的展示效果。那么animation属性则是为或是静态或是立体的效果,注入力量,注入可以去跑去跳去漂亮的倒挂金钩的力量。希望未来创造更多的好玩的动画效果。

有时候学习并不困难,如何应用是关键,所以,想要熟练的掌握前端知识,还需要不断的练习和应用。

前端的千变万化,源于对前端知识的融会贯通。

目录
相关文章
|
29天前
|
前端开发
【前端web入门第四天】02 CSS三大特性+背景图
本文详细介绍了CSS的三大特性:继承性、层叠性和优先级,并深入讲解了背景图的相关属性,包括背景属性、背景图的平铺方式、位置设定、缩放、固定以及复合属性。其中,继承性指子元素自动继承父元素的文字控制属性;层叠性指相同属性后定义覆盖前定义,不同属性可叠加;优先级涉及选择器权重,包括行内样式、ID选择器等。背景图部分则通过具体示例展示了如何设置背景图像的位置、大小及固定方式等。
240 91
|
14天前
|
前端开发
前端基础(五)_CSS文本文字属性、背景颜色属性
本文详细介绍了CSS中关于文本和背景颜色的样式属性。包括字体大小、字体族、字体加粗、字体样式、文本行高、`font`属性、文本颜色、文本对齐方式、文本装饰线、首行缩进等文本属性,以及背景颜色、背景图片、背景重复、背景位置等背景属性。文章通过示例代码展示了这些属性的具体应用和效果。
13 3
前端基础(五)_CSS文本文字属性、背景颜色属性
|
14天前
|
前端开发
前端基础(九)_CSS的三大特征
本文详细解释了CSS的三大特性:层叠性、继承性和优先级,并通过实例演示了样式冲突、叠加和选择器优先级的应用。
14 2
前端基础(九)_CSS的三大特征
|
2天前
|
Web App开发 前端开发
【前端基础篇】CSS基础速通万字介绍(上篇)3
【前端基础篇】CSS基础速通万字介绍(上篇)
9 1
|
2天前
|
Web App开发 前端开发
【前端基础篇】CSS基础速通万字介绍(上篇)2
【前端基础篇】CSS基础速通万字介绍(上篇)
15 1
|
2天前
|
缓存 前端开发 JavaScript
【前端基础篇】CSS基础速通万字介绍(上篇)1
【前端基础篇】CSS基础速通万字介绍(上篇)
11 1
|
29天前
|
前端开发
【前端web入门第三天】02 CSS字体和文本
本文详细介绍了CSS中字体和文本的相关属性。字体部分涵盖字体大小、粗细、样式、行高、字体族及`font`复合属性,通过具体示例展示了如何设置和使用这些属性。文本部分则讲解了文本缩进、对齐方式、修饰线及文字颜色等属性,并提供了实用的代码示例。此外,还简要介绍了调试工具中的一些细节,如错误属性标识和属性生效状态的控制。
52 28
|
14天前
|
编解码 前端开发
前端基础(六)_CSS单位
本文介绍了CSS中常用的单位,包括像素(px)、相对长度单位(em、rem)、百分比(%)、视窗宽度(vw)和视窗高度(vh)。文章通过示例代码展示了这些单位在实际布局中的应用,解释了它们各自的特点和使用场景。例如,em和rem单位与字体大小相关,百分比单位与父元素的尺寸相关,而vw和vh单位则与浏览器视窗的宽度和高度相关。
12 1
|
14天前
|
前端开发
前端基础(四)_CSS层叠样式表_什么是css_css样式的引入方式_样式表的优先级_样式选择器
本文详细介绍了CSS(层叠样式表)的基本概念、语法规则、引入方式、样式表的优先级和样式选择器。文章解释了CSS的作用,展示了如何在HTML中通过行内样式、内部样式和外部样式引入CSS,讨论了不同CSS选择器的优先级和如何确定最终的样式应用。此外,还强调了使用`!important`规则时的优先级高于行内样式。
47 1
|
29天前
|
前端开发 JavaScript
【前端web入门第三天】01 css定义和引入方式 四种标签选择器
本文档详细介绍了CSS的基础知识及其应用。内容涵盖了CSS的定义、CSS在HTML中的引入方式,包括内部样式表、外部样式表及行内样式表的使用场景与方法。此外,还深入解析了不同种类的选择器:标签选择器、类选择器、ID选择器以及通配符选择器的功能与应用场景,并提供了实例帮助理解。最后,通过具体的新属性示例,指导如何使用这些选择器来实现基本的盒子绘制。适合初学者系统学习CSS。
39 15