CSS3 @keyframes animate

[email protected]定义和用法

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

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

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

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

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

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

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

[email protected]语法

@keyframes animationname {keyframes-selector {css-styles;}}

3.w3c上面的案例,多个样式的改变

<!DOCTYPE html>
<html>
<head>
<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>

CSS3的animation类似于transition属性,他们都是随着时间改变元素的属性值。他们主要区别是transition需要触发一个事件 (hover事件或click事件等)才会随时间改变其css属性;而animation在不需要触发任何事件的情况下也可以显式的随着时间变化来改变元 素css的属性值,从而达到一种动画的效果。这样我们就可以直接在一个元素中调用animation的动画属性,基于这一点,css3的 animation就需要明确的动画属性值,我们需要keyframes来定义不同时间的css属性值,达到元素在不同时间 段变化的效果。

给一个元素调用animation属性

.demo1 {
     width: 50px;
     height: 50px;
     margin-left: 100px;
     background: blue;
     -webkit-animation-name:‘wobble‘;/*动画属性名,也就是我们前面keyframes定义的动画名*/
     -webkit-animation-duration: 10s;/*动画持续时间*/
     -webkit-animation-timing-function: ease-in-out; /*动画频率,和transition-timing-function是一样的*/
     -webkit-animation-delay: 2s;/*动画延迟时间*/
     -webkit-animation-iteration-count: 10;/*定义循环资料,infinite为无限次*/
     -webkit-animation-direction: alternate;/*定义动画方式*/
  }

===========================

自用:

/*定义旋转*/

@-webkit-keyframes rock{
        0%{ transform:rotate(0deg) }
        10%{ transform:rotate(3deg) }
        20%{ transform:rotate(-3deg) }
        30%{ transform:rotate(2deg) }
        40%{ transform:rotate(-2deg) }
        50%{ transform:rotate(1deg) }
        60%{ transform:rotate(-1deg) }
        70%{ transform:rotate(0deg) }
        100%{ transform:rotate(0deg) }
    }

/**给需要抖动选中的元素加上动画*/

.c_zongzi_box_rock{
        -webkit-animation:rock 2s infinite;
    }

infinite是无限的动画的意思  rock定义的-webkit-keyframes的名字,2s是动画的时间

transform-origin是动画变换的基点(参照点)

1、top left | left top 等价于 0 0 | 0% 0%

2、top | top center | center top 等价于 50% 0

3、right top | top right 等价于 100% 0

4、left | left center | center left 等价于 0 50% | 0% 50%

5、center | center center 等价于 50% 50%(默认值)

6、right | right center | center right 等价于 100% 50%

7、bottom left | left bottom 等价于 0 100% | 0% 100%

8、bottom | bottom center | center bottom 等价于 50% 100%

9、bottom right | right bottom 等价于 100% 100%

其中 left,center right是水平方向取值,对应的百分值为left=0%;center=50%;right=100%而top center bottom是垂直方向的取值,其中top=0%;center=50%;bottom=100%;如果只取一个值,表示垂直方向值不变

时间: 2024-08-21 09:03:02

CSS3 @keyframes animate的相关文章

css3动画animate.css的使用

简介 animate.css 是一个来自国外的 CSS3 动画库,它预设了抖动(shake).闪烁(flash).弹跳(bounce).翻转(flip).旋转(rotateIn/rotateOut).淡入淡出(fadeIn/fadeOut)等多达 60 多种动画效果,几乎包含了所有常见的动画效果. 虽然借助 animate.css 能够很方便.快速的制作 CSS3 动画效果,但还是建议看看 animate.css 的代码,也许你能从中学到一些东西. 在使用animate.css的时候通常都会搭配

CSS3 动画(CSS3 @keyframes 规则)

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

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-equ

CSS3 - @keyframes

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

纯CSS3文字效果推荐

之前曾经研究过几个纯css实现的文字效果,<CSS文字条纹阴影动画>和<响应式奶油立体字效果>等,今天我们来研究几款文字效果,主要利用text-shadow.webkit内核的几个独有特性实现效果. 在线研究单击这里,下载收藏单击这里. 效果1-立体字效果 我们的html文件貌似这样,为了更好的展示效果,我们加上了可编辑属性. <div contenteditable="true" class="text effect01">前端

CSS3之碰撞反弹动画无限运动

示例代码如下: 1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <title>CSS3 碰撞反弹动画无限运动</title> 6 <style type="text/css"> 7 .container { 8 width: 600px; 9 height: 400p

CSS3 timing-function: steps()介绍

在应用 CSS3 渐变/动画时,有个控制时间的属性 <timing-function>.它的取值中除了常用到的三次贝塞尔曲线以外,还有个steps() 函数. steps 函数指定了一个阶跃函数,第一个参数指定了时间函数中的间隔数量(必须是正整数):第二个参数可选,接受 start 和 end 两个值,指定在每个间隔的起点或是终点发生阶跃变化,默认为 end. #demo { animation-iteration-count: 2;//动画重复两次 animation-duration: 3

纯CSS3向右循环闪过效果

1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="utf-8"> 5 <style> 6 .shadow { 7 text-align: center; 8 /* 背景颜色线性渐变 */ 9 /* 老式写法 */ 10 /* linear为线性渐变,也可以用下面的那种写法.left top,right top指的是渐变方向,左上到右

CSS3 skew倾斜、rotate旋转动画

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