animation动画

@keyframes规则 - 创建动画

from - to 等价于 0% - 100%

但是优先使用0% - 100%,因为浏览器兼容性还好点

animation 动画绑定

  • 将keyframes动画规则绑定到选择器。

  • 必须设定动画的名称和时长。

  • 所有动画属性

animation-name

keyframes动画的名称

属性 含义 备注
动画名称 就是keyframes规定的动画名称 不设置动画不成功
none 设置后无动画效果 如果真的没有动画就不需要设置,但是这个功能的特殊用途用于覆盖级联的动画。

animation-duration

规定动画完成一个周期所花费的秒(.2s)、毫秒(200ms)

animation-timing-function

速度曲线(三次贝塞尔曲线)

属性 含义 备注
linear 匀速运动
ease 慢 - 快 - 慢
ease-in 慢 - 快
ease-out 快 - 慢
ease-in-out 慢 - ~ - 慢
cubic-bezier 自定义 上边这几个属性,都会在关键帧之间插入补间动画。使得动画效果连贯。
steps()函数 逐帧动画 适用于关键帧的跳跃

针对上边五个三次贝塞尔,其对比效果看下边w3c的效果一目了然

<!DOCTYPE html>
<html> <head>
<style>
div {
width: 100px;
height: 50px;
background: red;
color: white;
font-weight: bold;
position: relative;
animation: mymove 5s infinite;
-webkit-animation: mymove 5s infinite;
/* Safari and Chrome */
} #div1 {
animation-timing-function: cubic-bezier(0, 0, 0.25, 1);
} #div2 {
animation-timing-function: cubic-bezier(0.25, 0.1, 0.25, 1);
} #div3 {
animation-timing-function: cubic-bezier(0.42, 0, 1, 1);
} #div4 {
animation-timing-function: cubic-bezier(0, 0, 0.58, 1);
} #div5 {
animation-timing-function: cubic-bezier(0.42, 0, 0.58, 1);
} /* Safari and Chrome: */ #div1 {
-webkit-animation-timing-function: cubic-bezier(0, 0, 1, 1);
} #div2 {
-webkit-animation-timing-function: cubic-bezier(0.25, 0.1, 0.25, 1);
} #div3 {
-webkit-animation-timing-function: cubic-bezier(0.42, 0, 1, 1);
} #div4 {
-webkit-animation-timing-function: cubic-bezier(0, 0, 0.58, 1);
} #div5 {
-webkit-animation-timing-function: cubic-bezier(0.42, 0, 0.58, 1);
} @keyframes mymove {
from {
left: 0px;
}
to {
left: 300px;
}
} @-webkit-keyframes mymove
/* Safari and Chrome */ {
from {
left: 0px;
}
to {
left: 300px;
}
}
</style>
</head> <body> <p>
<strong>注释:</strong>Internet Explorer 9 以及更早的版本不支持 animation-timing-function 属性。</p> <div id="div1">linear</div>
<div id="div2">ease</div>
<div id="div3">ease-in</div>
<div id="div4">ease-out</div>
<div id="div5">ease-in-out</div> </body> </html>

特殊的 steps()函数

参数 含义 备注
正整数 指定时间函数中的间隔数量 必须是正整数
start/end 设置最后一步的状态 start为结束时的状态(第一帧是第一步动画结束),end为开始时的状态(第一帧是第一步动画开始)

定义steps的keyframes规则中,所有关键帧必须写出来,

比如我下边这个demo中

    @keyframes bgChange {
0% {
background-position-x: 0px;
}
20% {
background-position-x: -90px;
}
40% {
background-position-x: -181px;
}
60% {
background-position-x: -271px;
}
80% {
background-position-x: -359px;
}
100% {
background-position-x: -449px;
}
}

如果只改成from{} to{}两帧,动画跑不起来。同样的0% - 100% 也不可以。

animation-delay 延迟动画

动画延迟开始时间

animation-iteration-count: infinite;循环动画

动画播放次数

  • 常用 infinite

animation-direction 反向动画

是否逆向播放

属性 含义
normal 正常播放
alternate 反向

alter: vt. 改变,更改

animation-play-state 暂停动画

是否运行or暂停动画

属性 含义
paused 暂停
running 跑起来,运行

巧妙的运用该属性,鼠标经过的时候设置为运行,鼠标离开即变回默认的暂停状态。

animation-fill-mode

动画时间之外的状态

属性 含义 备注
none 不改变默认行为
forwards 动画完成后,保持最后一个属性值(在最后一个关键帧中定义) 感觉就像定格最后一针的效果不变
backwards 延迟执行时间段内,动画开始前,应用开始属性值(在第一帧中定义) 同上,只不过将变化的第一帧先定格展示出来
both 向前和向后填充模式都被应用。 上边两个结合应用,开始前将第一帧先展示,结束后最后一帧定格不变。

css笔记 - animation学习笔记(二)的更多相关文章

  1. 从今天开始 每天记录HTML,CSS 部分的学习笔记

    从今天开始 每天记录HTML,CSS 部分的学习笔记

  2. CSS Grid 布局学习笔记

    CSS Grid 布局学习笔记 好久没有写博客了, MDN 上关于 Grid 布局的知识比较零散, 正好根据我这几个月的实践对 CSS Grid 布局做一个总结, 以备查阅. 1. 基础用法 Grid ...

  3. Android Animation学习(二) ApiDemos解析:基本Animators使用

    Android Animation学习(二) ApiDemos解析:基本Animatiors使用 Animator类提供了创建动画的基本结构,但是一般使用的是它的子类: ValueAnimator.O ...

  4. html css的简单学习(二)

    html css的简单学习(二) <!Doctype html>告诉浏览器,这是一个html文档.lang="en" 默认是en,表示英语:zh-Hans 中文简体:z ...

  5. CSS权威指南学习笔记系列(1)CSS和文档

    题外话:HTML是一种结构化语言,而CSS是它的补充:这是一种样式语言.CSS是前端三板斧之一,因此学习CSS很重要.而我还是菜鸟,所以需要加强学习CSS.这个是我学习CSS权威指南的笔记,如有不对, ...

  6. css权威指南学习笔记 —— css选择器

    1,选择器:选择器的一些基本常用规则基本都记得,w3c上都有,平时也常用,不常用的一些后代选择器经常就忘记了.一些归纳一下后代选择器,加深一下印象: a:子选择器:   p>a  a是直接是p的 ...

  7. 原生 CSS 网格布局学习笔记

    下是来自Oliver Williams的帖子. Oliver已经学习了相当长时间的原生CSS网格,可以说是在CSS网格方面有一定的发言权.在这篇文章中,他将以非同寻常的思路分析自己的CSS网格布局学习 ...

  8. [读书笔记]C#学习笔记一: .Net Framwork

    前言: 一次偶然的机会  在园子里看到@Learning hard 出版的一本书: <<C#学习笔记>>, 然后买来 一直到现在读完, 感觉很不错, 适合入门, 书中内容是从C ...

  9. [读书笔记]C#学习笔记三: C#类型详解..

    前言 这次分享的主要内容有五个, 分别是值类型和引用类型, 装箱与拆箱,常量与变量,运算符重载,static字段和static构造函数. 后期的分享会针对于C#2.0 3.0 4.0 等新特性进行. ...

随机推荐

  1. Linux 系统安装配置PHP服务(源码安装)

    简介: PHP(外文名:PHP: Hypertext Preprocessor,中文名:“超文本预处理器”)是一种通用开源脚本语言.语法吸收了C语言.Java和Perl的特点,利于学习,使用广泛,主要 ...

  2. winform 应用log4net做日志记录到mysql

    1.nuget装log4net 2.nuget控件台装 mysql.data Install-Package mysql.data -version 6.8.3 (太高的版本用不了,切记) 3.修改a ...

  3. log4net 日志配置及使用

    一.log4net按照不同的[LEVEL]级别输出到不同文件 <log4net> <!--错误日志:::记录错误日志--> <!--按日期分割日志文件 一天一个--> ...

  4. Mybatis中#和$区别(带脑图)

    零.引言 使用 #{name} 的时候,MyBatis会进行预编译,防止SQL注入的问题(官方话) 用一个通俗一点的例子来解释,比如有如下MyBatis的SQL语句 21.#{}和${}的区别.png ...

  5. Obj格式模型 读取

    OBJ文件的结构 在一个OBJ文件中,首先有一些以v.vt或vn前缀开头的行指定了所有的顶点.纹理坐标.法线的坐标.然后再由一些以f开头的行指定每一个三角形所对应的顶点.纹理坐标和法线的索引.在顶点. ...

  6. MyEclipse连接CVS,如果中间经过一层代理,就没法直接联接到CVS了,哪位知道怎么办?

  7. linux mount 挂接新硬盘

    1.先用fdisk -l查看一下,先加入的外设地址名称   2. #fdisk /dev/sdb进入fdisk模式:Command (m for help):p //查看新硬盘的分区Command ( ...

  8. flex中的注释

    flex 2.5.35论文写到此处,遇到点麻烦,随手翻了本书,说下flex中的注释问题.中文版的35页有点问题,所以纠正下. 下面是p31示例 fb2_2.l /* 读取多个文件 */ %option ...

  9. 75道阿里Java面试题,你能答上几道?

    整理了下阿里近几年的java面试题目,大家参考下吧,希望对大家有帮助,可以帮大家查漏补缺. 答对以下这些面试题,可以淘汰掉 80 % 的求职竞争者. 1.hashcode相等两个类一定相等吗?equa ...

  10. 让 Oracle 11g 32位运作在64位 Windows 上

    并非不能运行. 本人安装版未曾尝试,但绿色版倒是运行成功了. 很简单:注册表的位置发生了变化而已! 默认(32位.64位),oracle会读取以下注册表的位置:      [HKEY_LOCAL_MA ...