CSS3 @keyframes 规则

实例

使 div 元素匀速向下移动:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"        "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head>    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>    <title>无标题</title>    <link type="text/css" rel="stylesheet" href="test.css"/>

    <style type="text/css">        div {            width: 100px;            height: 100px;            background: #ff8fce;            color: snow;            position: relative;            animation: mymove 5s linear;            -moz-animation: mymove 5s linear; /* Firefox */            -webkit-animation: mymove 5s linear; /* Safari and Chrome */            -o-animation: mymove 5s linear; /* Opera */        }

        @keyframes mymove {            from {                top: 0px;            }            to {                top: 200px;            }        }

        @-moz-keyframes mymove /* Firefox */        {            from {                top: 0px;            }            to {                top: 200px;            }        }

        @-webkit-keyframes mymove /* Safari 和 Chrome */        {            from {                top: 0px;            }            to {                top: 200px;            }        }

        @-o-keyframes mymove /* Opera */        {            from {                top: 0px;            }            to {                top: 200px;            }        }

    </style></head><body><div>内存</div>

</body>

</html>

运行结果:(5秒内从上运动到200px,然后自己跳回原点)

浏览器支持

目前浏览器都不支持 @keyframes 规则。

Firefox 支持替代的 @-moz-keyframes 规则。

Opera 支持替代的 @-o-keyframes 规则。

Safari 和 Chrome 支持替代的 @-webkit-keyframes 规则。

定义和用法

通过 @keyframes 规则,您能够创建动画。

创建动画的原理是,将一套 CSS 样式逐渐变化为另一套样式。

在动画过程中,您能够多次改变这套 CSS 样式。

以百分比来规定改变发生的时间,或者通过关键词 "from" 和 "to",等价于 0% 和 100%。

0% 是动画的开始时间,100% 动画的结束时间。

为了获得最佳的浏览器支持,您应该始终定义 0% 和 100% 选择器。

注释:请使用动画属性来控制动画的外观,同时将动画与选择器绑定。

语法

@keyframes animationname {keyframes-selector {css-styles;}}
描述
animationname 必需。定义动画的名称。
keyframes-selector
必需。动画时长的百分比。

合法的值:

  • 0-100%
  • from(与 0% 相同)
  • to(与 100% 相同)
css-styles 必需。一个或多个合法的 CSS 样式属性。

亲自试一试 - 实例

实例 1

在一个动画中添加多个 keyframe 选择器:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"        "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head>    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>    <title>无标题</title>    <link type="text/css" rel="stylesheet" href="test.css"/>

    <style type="text/css">        div {            width: 100px;            height: 100px;            background: #ff72cc;            position: relative;            animation: mymove 5s infinite;            -moz-animation: mymove 5s infinite; /* Firefox */            -webkit-animation: mymove 5s infinite; /* Safari and Chrome */            -o-animation: mymove 5s infinite; /* Opera */        }

        @keyframes mymove {            0% {                top: 0px;            }            25% {                top: 200px;            }            75% {                top: 50px            }            100% {                top: 100px;            }        }

        @-moz-keyframes mymove /* Firefox */        {            0% {                top: 0px;            }            25% {                top: 200px;            }            75% {                top: 50px            }            100% {                top: 100px;            }        }

        @-webkit-keyframes mymove /* Safari and Chrome */        {            0% {                top: 0px;            }            25% {                top: 200px;            }            75% {                top: 50px            }            100% {                top: 100px;            }        }

        @-o-keyframes mymove /* Opera */        {            0% {                top: 0px;            }            25% {                top: 200px;            }            75% {                top: 50px            }            100% {                top: 100px;            }        }    </style></head><body><div></div></body></html>

运行结果:(位置自己循环变换)

实例 2

在一个动画中改变多个 CSS 样式:

<!DOCTYPE html><html><head lang="en">    <meta charset="UTF-8">    <title></title>    <style>        div {            width: 100px;            height: 100px;            background: red;            position: relative;            animation: mymove 5s infinite;            -moz-animation: mymove 5s infinite; /* Firefox */            -webkit-animation: mymove 5s infinite; /* Safari and Chrome */            -o-animation: mymove 5s infinite; /* Opera */        }

        @keyframes mymove {            0% {                top: 0px;                background: red;                width: 100px;            }            100% {                top: 200px;                background: yellow;                width: 300px;            }        }

        @-moz-keyframes mymove /* Firefox */        {            0% {                top: 0px;                background: red;                width: 100px;            }            100% {                top: 200px;                background: yellow;                width: 300px;            }        }

        @-webkit-keyframes mymove /* Safari and Chrome */        {            0% {                top: 0px;                background: red;                width: 100px;            }            100% {                top: 200px;                background: yellow;                width: 300px;            }        }

        @-o-keyframes mymove /* Opera */        {            0% {                top: 0px;                background: red;                width: 100px;            }            100% {                top: 200px;                background: yellow;                width: 300px;            }        }    </style></head><body>

<p><b>注释:</b>本例在 Internet Explorer 中无效。</p>

<div></div>

</body></html>

运行结果:(自己循环渐变大小和颜色)

实例 3

带有多个 CSS 样式的多个 keyframe 选择器:

<!DOCTYPE html><html><head lang="en">    <meta charset="UTF-8">    <title></title>    <style>        div {            width: 100px;            height: 100px;            background: red;            position: relative;            animation: mymove 5s infinite;            -moz-animation: mymove 5s infinite; /* Firefox */            -webkit-animation: mymove 5s infinite; /* Safari and Chrome */            -o-animation: mymove 5s infinite; /* Opera */        }

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

        @-moz-keyframes mymove /* Firefox */        {            0% {                top: 0px;                left: 0px;                background: red;            }            25% {                top: 0px;                left: 100px;                background: blue;            }            50% {                top: 100px;                left: 100px;                background: yellow;            }            75% {                top: 100px;                left: 0px;                background: green;            }            100% {                top: 0px;                left: 0px;                background: red;            }        }

        @-webkit-keyframes mymove /* Safari and Chrome */        {            0% {                top: 0px;                left: 0px;                background: red;            }            25% {                top: 0px;                left: 100px;                background: blue;            }            50% {                top: 100px;                left: 100px;                background: yellow;            }            75% {                top: 100px;                left: 0px;                background: green;            }            100% {                top: 0px;                left: 0px;                background: red;            }        }  
 @-o-keyframes mymove /* Opera */        {            0% {                top: 0px;                left: 0px;                background: red;            }            25% {                top: 0px;                left: 100px;                background: blue;            }            50% {                top: 100px;                left: 100px;                background: yellow;            }            75% {                top: 100px;                left: 0px;                background: green;            }            100% {                top: 0px;                left: 0px;                background: red;            }        }    </style></head><body>

<p><b>注释:</b>本例在 Internet Explorer 中无效。</p>

<div></div>

</body></html>
运行结果:(自己循环变换位置和颜色)
时间: 2024-10-20 21:28:25

CSS3 @keyframes 规则的相关文章

CSS3 动画(CSS3 @keyframes 规则)

@keyframes 规则用于创建动画.在 @keyframes 中规定某项 CSS 样式,就能创建由当前样式逐渐改为新样式的动画效果. 浏览器支持 Internet Explorer 10.Firefox 以及 Opera 支持 @keyframes 规则和 animation 属性. Chrome 和 Safari 需要前缀 -webkit-. 注释:Internet Explorer 9,以及更早的版本,不支持 @keyframe 规则或 animation 属性. @keyframes

CSS3 @keyframes animate

[email protected]定义和用法 通过 @keyframes 规则,您能够创建动画. 创建动画的原理是,将一套 CSS 样式逐渐变化为另一套样式. 在动画过程中,您能够多次改变这套 CSS 样式. 以百分比来规定改变发生的时间,或者通过关键词 "from" 和 "to",等价于 0% 和 100%. 0% 是动画的开始时间,100% 动画的结束时间. 为了获得最佳的浏览器支持,您应该始终定义 0% 和 100% 选择器. 注释:请使用动画属性来控制动画的

CSS3 - @keyframes

语法 @keyframes animationname {keyframes-selector {css-styles;}} 值 描述 animationname 必需.定义动画的名称. keyframes-selector 必需.动画时长的百分比. 合法的值: 0-100% from(与 0% 相同) to(与 100% 相同) css-styles 必需.一个或多个合法的 CSS 样式属性. 定义和用法 通过 @keyframes 规则,您能够创建动画. 创建动画的原理是,将一套 CSS 样

移动端媒体查询CSS3适配规则

该媒体查询适配规则是以UI设计图750p宽度为版本的,比如PS量的是450px,在书写时写 (450rem/2/15). @media (min-width:240px) and (max-width:320px){html{font-size:12.8px!important}} @media (min-width:321px) and (max-width:360px){html{font-size:14.4px!important}} @media (min-width:361px) an

CSS3 skew倾斜、rotate旋转动画

css3出现之前.我们实现一个对象的一组连续动画须要通过JavaScript或Jquery编写,脚本代码较为复杂: 若须要实现倾斜.旋转之类的动画难度将更高(我还没试过用JavaScript或Jquery怎样实现),并且即使能实现预计花的时间代价及维护难度是非常大的,非常多时候仅仅能依靠绘图工具制作此类动画文件: 有时候在想假设不用脚本语言,也不用绘图工作制作动画文件.就能在网页上实现倾斜.旋转之类的动画效果多好. 近期挤出一些业余时间学习CSS3,当中就包括非常多动画演示样例,花了点时间学习和

HTML 学习笔记 CSS3(Animation)

CSS3动画: 通过CSS3 我们能够创建动画 这可以在许多网页中取代动画图片 Flash动画 以及JavaScript. CSS3 @keyframes 规则如需在 CSS3 中创建动画,您需要学习 @keyframes 规则.@keyframes 规则用于创建动画.在 @keyframes 中规定某项 CSS 样式,就能创建由当前样式逐渐改为新样式的动画效果. 同样的先看一个例子: <html> <head> <meta charset="UTF-8"

CSS3 动画

通过 CSS3,我们能够创建动画,这可以在许多网页中取代动画图片.Flash 动画以及 JavaScript. CSS3 @keyframes 规则 如需在 CSS3 中创建动画,您需要学习 @keyframes 规则. @keyframes 规则用于创建动画.在 @keyframes 中规定某项 CSS 样式,就能创建由当前样式逐渐改为新样式的动画效果. 浏览器支持 属性 浏览器支持 @keyframes           animation           Internet Explo

CSS3 基本知识

1.CSS3 简介 CSS 指层叠样式表 (Cascading Style Sheets),用于控制网页的样式和布局,CSS3 是最新的 CSS 标准. 在网页制作时采用层叠样式表,可以有效的对页面的布局.字体.颜色.背景和其他效果实现更加精确的控制,只要对相应的代码做一些简单的修改,就可以改变同一页面的不同部分.通过仅仅编辑一个简单的 CSS 文件,外部样式表有能力同时改变站点中所有页面的布局和外观. CSS3 语言开发是朝着模块化发展的.之前的规范作为一个模块很庞大而且比较复杂,所以 CSS

CSS3 animation 属性

定义和用法:animation 属性是一个简写属性,用于设置六个动画属性: animation-name 规定需要绑定到选择器的 keyframe 名称..animation-duration 规定完成动画所花费的时间,以秒或毫秒计.animation-timing-function 规定动画的速度曲线.animation-delay 规定在动画开始之前的延迟.animation-iteration-count 规定动画应该播放的次数.animation-direction 规定是否应该轮流反向