CSS 动画

您所在的位置:网站首页 CSS切图和动画那个费性能 CSS 动画

CSS 动画

2024-07-12 19:38| 来源: 网络整理| 查看: 265

w3school 在线教程 HTML 系列教程 浏览器脚本 服务器脚本 编程教程 XML 系列教程 建站手册 参考手册 CSS 基础教程 CSS 教程 CSS 简介 CSS 语法 CSS 选择器 CSS 使用 CSS 注释 CSS 颜色 CSS RGB 颜色 CSS HEX 颜色 CSS HSL 颜色 CSS 背景 CSS 背景图像 CSS 背景重复 CSS 背景附着 CSS 简写背景属性 CSS 边框 CSS 边框宽度 CSS 边框颜色 CSS 边框各边 CSS 简写边框属性 CSS 圆角边框 CSS 外边距 CSS 外边距合并 CSS 内边距 CSS 高度/宽度 CSS 框模型 CSS 轮廓 CSS 轮廓宽度 CSS 轮廓颜色 CSS 简写轮廓属性 CSS 轮廓偏移 CSS 文本 CSS 文本对齐 CSS 文本装饰 CSS 文本转换 CSS 文字间距 CSS 文本阴影 CSS 字体 CSS 字体样式 CSS 字体大小 CSS 谷歌字体 CSS 简写字体属性 CSS 图标 CSS 链接 CSS 列表 CSS 表格 CSS 中级教程 CSS Display CSS max-width CSS 定位 CSS 溢出 CSS 浮动 CSS 清除浮动 CSS 布局 - 浮动实例 CSS inline-block CSS 对齐 CSS 组合器 CSS 伪类 CSS 伪元素 CSS 不透明度 CSS 导航栏 CSS 垂直导航栏 CSS 水平导航栏 CSS 下拉菜单 CSS 图片库 CSS 图像精灵 CSS 属性选择器 CSS 表单 CSS 计数器 CSS 网站布局 CSS 单位 CSS 特异性 CSS3 高级教程 CSS 圆角 CSS 边框图像 CSS 背景 CSS 颜色 CSS 渐变 CSS 径向渐变 CSS 阴影 CSS box-shadow CSS 文本效果 CSS 网络字体 CSS 2D 转换 CSS 3D 转换 CSS 过渡 CSS 动画 CSS 工具提示 CSS 图像样式 CSS object-fit CSS 按钮 CSS 分页 CSS 多列 CSS 用户界面 CSS 变量 CSS 覆盖变量 CSS 变量 - JavaScript CSS 变量 - 媒体查询 CSS Box Sizing CSS Flexbox CSS 媒体查询 CSS 媒体查询实例 CSS 响应式设计 RWD 简介 RWD 视口 RWD 网格视图 RWD 媒体查询 RWD 图像 RWD 视频 CSS 网格教程 CSS 网格布局模块 CSS 网格容器 CSS 网格项目 CSS 实例 CSS 实例 CSS 测验 CSS 测验 CSS 参考手册 CSS 参考手册 CSS 浏览器支持 CSS 选择器 CSS 函数 CSS 单位 CSS 听觉 CSS 网络安全字体 CSS 可动画制作 CSS 单位 CSS 颜色 CSS 颜色值 CSS 默认值 CSS 实体 CSS 动画 CSS 过渡 CSS 工具提示 CSS 动画

CSS 可实现 HTML 元素的动画效果,而不使用 JavaScript 或 Flash!

CSS

在本章中,您将学习如下属性:

@keyframes animation-name animation-duration animation-delay animation-iteration-count animation-direction animation-timing-function animation-fill-mode animation 对动画的浏览器支持

表格中的数字注明了完全支持该属性的首个浏览器版本。

属性 Chrome IE Firefox Safari Opera @keyframes 43.0 10.0 16.0 9.0 30.0 animation-name 43.0 10.0 16.0 9.0 30.0 animation-duration 43.0 10.0 16.0 9.0 30.0 animation-delay 43.0 10.0 16.0 9.0 30.0 animation-iteration-count 43.0 10.0 16.0 9.0 30.0 animation-direction 43.0 10.0 16.0 9.0 30.0 animation-timing-function 43.0 10.0 16.0 9.0 30.0 animation-fill-mode 43.0 10.0 16.0 9.0 30.0 animation 43.0 10.0 16.0 9.0 30.0 什么是 CSS 动画?

动画使元素逐渐从一种样式变为另一种样式。

您可以随意更改任意数量的 CSS 属性。

如需使用 CSS 动画,您必须首先为动画指定一些关键帧。

关键帧包含元素在特定时间所拥有的样式。

@keyframes 规则

如果您在 @keyframes 规则中指定了 CSS 样式,动画将在特定时间逐渐从当前样式更改为新样式。

要使动画生效,必须将动画绑定到某个元素。

下面的例子将 "example" 动画绑定到 元素。动画将持续 4 秒钟,同时将 元素的背景颜色从 "red" 逐渐改为 "yellow":

实例 /* 动画代码 */ @keyframes example { from {background-color: red;} to {background-color: yellow;} } /* 向此元素应用动画效果 */ div { width: 100px; height: 100px; background-color: red; animation-name: example; animation-duration: 4s; }

亲自试一试

注意:animation-duration 属性定义需要多长时间才能完成动画。如果未指定 animation-duration 属性,则动画不会发生,因为默认值是 0s(0秒)。

在上面的例子中,通过使用关键字 "from" 和 "to"(代表 0%(开始)和 100%(完成)),我们设置了样式何时改变。

您也可以使用百分比值。通过使用百分比,您可以根据需要添加任意多个样式更改。

下面的例子将在动画完成 25%,完成 50% 以及动画完成 100% 时更改 元素的背景颜色:

实例 /* 动画代码 */ @keyframes example { 0% {background-color: red;} 25% {background-color: yellow;} 50% {background-color: blue;} 100% {background-color: green;} } /* 应用动画的元素 */ div { width: 100px; height: 100px; background-color: red; animation-name: example; animation-duration: 4s; }

亲自试一试

下面的例子将在动画完成 25%,完成 50% 以及动画完成 100% 时更改背景颜色和 元素的位置:

实例 /* 动画代码 */ @keyframes example { 0% {background-color:red; left:0px; top:0px;} 25% {background-color:yellow; left:200px; top:0px;} 50% {background-color:blue; left:200px; top:200px;} 75% {background-color:green; left:0px; top:200px;} 100% {background-color:red; left:0px; top:0px;} } /* 应用动画的元素 */ div { width: 100px; height: 100px; position: relative; background-color: red; animation-name: example; animation-duration: 4s; }

亲自试一试

延迟动画

animation-delay 属性规定动画开始的延迟时间。

下面的例子在开始动画前有 2 秒的延迟:

实例 div { width: 100px; height: 100px; position: relative; background-color: red; animation-name: example; animation-duration: 4s; animation-delay: 2s; }

亲自试一试

负值也是允许的。如果使用负值,则动画将开始播放,如同已播放 N 秒。

在下面的例子中,动画将开始播放,就好像它已经播放了 2 秒钟一样:

实例 div { width: 100px; height: 100px; position: relative; background-color: red; animation-name: example; animation-duration: 4s; animation-delay: -2s; }

亲自试一试

设置动画应运行多少次

animation-iteration-count 属性指定动画应运行的次数。

下面的例子在停止前把动画运行 3 次:

实例 div { width: 100px; height: 100px; position: relative; background-color: red; animation-name: example; animation-duration: 4s; animation-iteration-count: 3; }

亲自试一试

下面的例子使用值 "infinite" 使动画永远持续下去:

实例 div { width: 100px; height: 100px; position: relative; background-color: red; animation-name: example; animation-duration: 4s; animation-iteration-count: infinite; }

亲自试一试

反向或交替运行动画

animation-direction 属性指定是向前播放、向后播放还是交替播放动画。

animation-direction 属性可接受以下值:

normal - 动画正常播放(向前)。默认值 reverse - 动画以反方向播放(向后) alternate - 动画先向前播放,然后向后 alternate-reverse - 动画先向后播放,然后向前

下例将以相反的方向(向后)运行动画:

实例 div { width: 100px; height: 100px; position: relative; background-color: red; animation-name: example; animation-duration: 4s; animation-direction: reverse; }

亲自试一试

下面的例子使用值 "alternate" 使动画先向前运行,然后向后运行:

实例 div { width: 100px; height: 100px; position: relative; background-color: red; animation-name: example; animation-duration: 4s; animation-iteration-count: 2; animation-direction: alternate; }

亲自试一试

下面的例子使用值 "alternate-reverse" 使动画先向后运行,然后向前运行:

实例 div { width: 100px; height: 100px; position: relative; background-color: red; animation-name: example; animation-duration: 4s; animation-iteration-count: 2; animation-direction: alternate-reverse; }

亲自试一试

指定动画的速度曲线

animation-timing-function 属性规定动画的速度曲线。

animation-timing-function 属性可接受以下值:

ease - 指定从慢速开始,然后加快,然后缓慢结束的动画(默认) linear - 规定从开始到结束的速度相同的动画 ease-in - 规定慢速开始的动画 ease-out - 规定慢速结束的动画 ease-in-out - 指定开始和结束较慢的动画 cubic-bezier(n,n,n,n) - 运行您在三次贝塞尔函数中定义自己的值

下面这些例子展示了可以使用的一些不同速度曲线:

实例 #div1 {animation-timing-function: linear;} #div2 {animation-timing-function: ease;} #div3 {animation-timing-function: ease-in;} #div4 {animation-timing-function: ease-out;} #div5 {animation-timing-function: ease-in-out;}

亲自试一试

指定动画的填充模式

CSS 动画不会在第一个关键帧播放之前或在最后一个关键帧播放之后影响元素。animation-fill-mode 属性能够覆盖这种行为。

在不播放动画时(在开始之前,结束之后,或两者都结束时),animation-fill-mode 属性规定目标元素的样式。

animation-fill-mode 属性可接受以下值:

none - 默认值。动画在执行之前或之后不会对元素应用任何样式。 forwards - 元素将保留由最后一个关键帧设置的样式值(依赖 animation-direction 和 animation-iteration-count)。 backwards - 元素将获取由第一个关键帧设置的样式值(取决于 animation-direction),并在动画延迟期间保留该值。 both - 动画会同时遵循向前和向后的规则,从而在两个方向上扩展动画属性。

下面的例子让 元素在动画结束时保留来自最后一个关键帧的样式值:

实例 div { width: 100px; height: 100px; background: red; position: relative; animation-name: example; animation-duration: 3s; animation-fill-mode: forwards; }

亲自试一试

下面的例子在动画开始之前(在动画延迟期间)使 元素获得由第一个关键帧设置的样式值:

实例 div { width: 100px; height: 100px; background: red; position: relative; animation-name: example; animation-duration: 3s; animation-delay: 2s; animation-fill-mode: backwards; }

亲自试一试

下面的例子在动画开始之前使 元素获得第一个关键帧设置的样式值,以及在动画结束时保留最后一个关键帧的样式值:

实例 div { width: 100px; height: 100px; background: red; position: relative; animation-name: example; animation-duration: 3s; animation-delay: 2s; animation-fill-mode: both; }

亲自试一试

动画简写属性

下例使用六种动画属性:

实例 div { animation-name: example; animation-duration: 5s; animation-timing-function: linear; animation-delay: 2s; animation-iteration-count: infinite; animation-direction: alternate; }

亲自试一试

使用简写的 animation 属性也可以实现与上例相同的动画效果:

实例 div { animation: example 5s linear 2s infinite alternate; }

亲自试一试

CSS 动画属性

下表列出了 @keyframes 规则和所有 CSS 动画属性:

属性 描述 @keyframes 规定动画模式。 animation 设置所有动画属性的简写属性。 animation-delay 规定动画开始的延迟。 animation-direction 定动画是向前播放、向后播放还是交替播放。 animation-duration 规定动画完成一个周期应花费的时间。 animation-fill-mode 规定元素在不播放动画时的样式(在开始前、结束后,或两者同时)。 animation-iteration-count 规定动画应播放的次数。 animation-name 规定 @keyframes 动画的名称。 animation-play-state 规定动画是运行还是暂停。 animation-timing-function 规定动画的速度曲线。 CSS 过渡 CSS 工具提示 CSS 参考手册 CSS 实例 CSS 测验 CSS 课外书

W3School 简体中文版提供的内容仅用于培训和测试,不保证内容的正确性。通过使用本站内容随之而来的风险与本站无关。版权所有,保留一切权利。

关于 W3School 帮助 W3School 使用条款 隐私条款 技术支持:赢科 蒙ICP备06004630号



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3