CSS3 @keyframes 动画

CSS3的@keyframes,它可以取代许多网页动画图像,Flash动画,和JAVAScripts。

CSS3的动画属性

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

浏览器支持

表格中的数字表示支持该属性的第一个浏览器版本号。

紧跟在 -webkit-, -ms- 或 -moz- 前的数字为支持该前缀属性的第一个浏览器版本号。

例子:

@keyframes myfirst
{
    from {background: red;}
    to {background: yellow;}
}
 
@-webkit-keyframes myfirst /* Safari 与 Chrome */
{
    from {background: red;}
    to {background: yellow;}
}

 

当在 @keyframes 创建动画,把它绑定到一个选择器,否则动画不会有任何效果。

指定至少这两个CSS3的动画属性绑定向一个选择器:

  • 规定动画的名称
  • 规定动画的时长

如:

div
{
    animation: myfirst 5s;
    -webkit-animation: myfirst 5s; /* Safari 与 Chrome */
}

 注意: 您必须定义动画的名称和动画的持续时间。如果省略的持续时间,动画将无法运行,因为默认值是0。

 

实例:注意: 该实例在 Internet Explorer 9 及更早 IE 版本是无效的。

div
{
    width:100px;
    height:100px;
    background:red;
    position:relative;
    animation-name:myfirst;
    animation-duration:5s;
    animation-timing-function:linear;
    animation-delay:2s;
    animation-iteration-count:infinite;
    animation-direction:alternate;
    animation-play-state:running;
    /* Safari and Chrome: */
    -webkit-animation-name:myfirst;
    -webkit-animation-duration:5s;
    -webkit-animation-timing-function:linear;
    -webkit-animation-delay:2s;
    -webkit-animation-iteration-count:infinite;
    -webkit-animation-direction:alternate;
    -webkit-animation-play-state:running;
}

@keyframes myfirst
{
    0%   {background:red; left:0px; top:0px;}
    25%  {background:yellow; left:200px; top:0px;}
    50%  {background:blue; left:200px; top:200px;}
    75%  {background:green; left:0px; top:200px;}
    100% {background:red; left:0px; top:0px;}
}

@-webkit-keyframes myfirst /* Safari and Chrome */
{
    0%   {background:red; left:0px; top:0px;}
    25%  {background:yellow; left:200px; top:0px;}
    50%  {background:blue; left:200px; top:200px;}
    75%  {background:green; left:0px; top:200px;}
    100% {background:red; left:0px; top:0px;}
}

 

### 使用 `@keyframes` 定义动画关键帧 在 CSS3 中,`@keyframes` 是用于定义动画的关键部分。要创建一个动画效果,必须先定义一组关键帧以及它们之间的样式变化[^1]。 #### 创建基本结构 首先,在样式表中声明 `@keyframes` 规则并为其命名: ```css /* 创建名为 'example' 的动画 */ @keyframes example { /* 动画起始状态 (可选 "from") */ 0% { background-color: red; } /* 动画结束状态 (可选 "to") */ 100% { background-color: yellow; } } ``` 上述代码展示了最简单的两个极端位置——即动画开始 (`0%`) 和 结束 (`100%`) ——之间颜色的变化[^2]。 #### 添加更多关键帧 为了使动画更加复杂和平滑,可以在两者之间加入额外的关键帧: ```css @keyframes slideAndRotate { 0%, from { transform: translateX(0) rotate(0); } 50% { transform: translateX(100px) rotate(90deg); } 100%, to { transform: translateX(200px) rotate(180deg); } } ``` 这里不仅设置了位移还加入了旋转的效果,并且利用了 `translate()` 函数实现了水平移动的同时也应用了 `rotate()` 来改变元素的角度[^4]。 #### 将动画应用于HTML元素 最后一步就是把已经定义好的动画附加给具体的 HTML 元素上。这通常通过设置 `animation` 属性完成,该属性可以控制诸如持续时间、延迟时间和播放次数等参数: ```css div { width: 100px; height: 100px; background-color: blue; animation-name: slideAndRotate; animation-duration: 3s; animation-timing-function: linear; animation-delay: 1s; animation-iteration-count: infinite; } ``` 这段代码表示 div 元素将在加载页面后一秒启动无限循环的线性运动,每次完整的周期为三秒钟。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值