css3动画讲解,关于css3的@keyframes和animation
通过css3我们可以创建动画,它能取代gif图片、Flash、Js动画等,css3的animation动画是应用在html的DOM元素上的,通过样式来实现的。
@keyframes 规则
@Keyframes我们可以把他理解为“关键帧”,它的规则是:创建由当前样式逐渐改为新样式的动画效果。对于一个"@keyframes"中的样式规则是由多个百分比构成的如“0%”到"100%"之间,我们可以使用“from”和“to”来代表一个动画是从哪开始,到那结束,"from“就相当与0%,”to"就相当于100%。
实例:
@keyframes myfirst{ /*动画名称:myfirst */
  from {background: red;}/*0%*/
  to {background: yellow;}/**/
}
//或者写成百分百的形式:
@keyframes myfirst{ /*动画名称:myfirst */
  %   {background:red;}
  %  {background:yellow;}
  %  {background:blue;}
  % {background:green;}
}
为了兼容浏览器,所以一般要加前缀:@-moz-keyframes兼容/* Firefox */、@-webkit-keyframes兼容/* Safari 和 Chrome */、@-o-keyframes兼容/* Opera */。
@keyframes应该保证定义了 0% 和 100%,这样才能保证浏览器最佳的显示效果。
animation
@Keyframes定义好了后,我们需要通过animation去调用刚才定义好的动画,CSS3的animation类似于transition属性,他们都是随着时间改变元素的属性值。他们主要区别是transition需要触发一个事件(hover事件或click事件等)才会随时间改变其css属性;而animation在不需要触发任何事件的情况下也可以显式的随着时间变化来改变元素css的属性值,从而达到一种动画的效果。anmiation是所有动画属性的简写属性:
| 属性 | 描述 | 
|---|---|
| animation | 所有动画属性的简写属性,除了 animation-play-state 属性。 | 
| animation-name | 规定 @keyframes 动画的名称。 | 
| animation-duration | 规定动画完成一个周期所花费的秒或毫秒。默认是 0。 | 
| animation-timing-function | 规定动画的速度曲线。默认是 "ease"。 | 
| animation-delay | 规定动画何时开始。默认是 0。 | 
| animation-iteration-count | 规定动画被播放的次数。默认是 1。 | 
| animation-direction | 规定动画是否在下一周期逆向地播放。默认是 "normal"。 | 
| animation-play-state | 规定动画是否正在运行或暂停。默认是 "running"。 | 
| animation-fill-mode | 规定对象动画时间之外的状态。 | 
同样为了兼容,都需要添加对应的前缀。
实例:
div
{
animation-name: myfirst;
animation-duration: 5s;
animation-timing-function: linear;
animation-delay: 2s;
animation-iteration-count: infinite;
animation-direction: alternate;
animation-play-state: running;
/* Firefox: */
-moz-animation-name: myfirst;
-moz-animation-duration: 5s;
-moz-animation-timing-function: linear;
-moz-animation-delay: 2s;
-moz-animation-iteration-count: infinite;
-moz-animation-direction: alternate;
-moz-animation-play-state: running;
/* Safari 和 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;
/* Opera: */
-o-animation-name: myfirst;
-o-animation-duration: 5s;
-o-animation-timing-function: linear;
-o-animation-delay: 2s;
-o-animation-iteration-count: infinite;
-o-animation-direction: alternate;
-o-animation-play-state: running;
}
办公资源网址导航 https://www.wode007.com
与上面的动画相同,但是使用了简写的动画 animation 属性:
div
{
animation: myfirst 5s linear 2s infinite alternate;
/* Firefox: */
-moz-animation: myfirst 5s linear 2s infinite alternate;
/* Safari 和 Chrome: */
-webkit-animation: myfirst 5s linear 2s infinite alternate;
/* Opera: */
-o-animation: myfirst 5s linear 2s infinite alternate;
}
css3动画讲解,关于css3的@keyframes和animation的更多相关文章
- css3动画基础详解(@keyframes和animation)
		
我们经常会看到CSS3能制作出很炫酷的动画效果,但是自己却只能做一些简单的.原因是对CSS3动画只知其一,不知其二.最近正好有做动画的项目,于是花时间将css3动画做了一个探究之旅,记录在册. 动画是 ...
 - 使用jquery封装的动画脚本(无动画、css3动画、js动画)
		
自己封装好的showhide.js 包含无动画.css3动画.js动画 包括:fade(淡入淡出) slideUpDown(上下滑动) slideLeftRight(左右滑动) fadeSlid ...
 - 显示层封装及实现与优化(无动画+css3动画+js动画)
		
showhide.html <!DOCTYPE html> <html lang="en"> <head> <meta charset=& ...
 - 用css3动画 @keyframes里设置transform:rotate(); 控制动画暂停和运动用属性:animation-play-state:paused暂停,在微信和safari里设置paused无效,在QQ里是正常的
		
这几天遇到了两个很奇葩的问题,终于找到原因,趁还记得解决方法,赶紧记下来: 用css3动画 @keyframes里设置transform:rotate(); 控制动画暂停和运动可以用属性:animat ...
 - CSS3 动画 animation和@keyframes
		
CSS3 @keyframes 规则 如需在 CSS3 中创建动画,您需要学习 @keyframes 规则. @keyframes 规则用于创建动画.在 @keyframes 中规定某项 CSS 样式 ...
 - 原生js判断css3动画过度(transition)结束  transitionend事件   以及关键帧keyframes动画结束(animation)回调函数 animationEnd  以及 css 过渡 transition无效
		
上图的 demo 主要讲的 是 css transition的过渡回调函数transitionend事件: css3 的时代,css3--动画 一切皆有可能: 传统的js 可以通过回调函数判断动画 ...
 - 第 26 章 CSS3 动画效果
		
学习要点: 1.动画简介 2.属性详解 3.简写和版本 主讲教师:李炎恢 本章主要探讨 HTML5 中 CSS3 的动画效果,可以通过类似 Flash 那样的关键帧模式控制运行. 一.动画简介 CSS ...
 - 第八十三节,CSS3动画效果
		
CSS3动画效果 学习要点: 1.动画简介 2.属性详解 3.简写和版本 本章主要探讨HTML5中CSS3的动画效果,可以通过类 Flash那样的关键帧模式控制运行. 一.动画简介 CSS3提 ...
 - CSS3动画详解(超详细)
		
本文最初发表于博客园,并在GitHub上持续更新前端的系列文章.欢迎在GitHub上关注我,一起入门和进阶前端. 以下是正文. 前言 本文主要内容: 过渡:transition 2D 转换 trans ...
 
随机推荐
- Java实现 洛谷 P1028 数的计算
			
import java.util.Scanner; import java.util.Arrays; public class Main { private static Scanner cin; p ...
 - java实现圆周率与级数
			
** 圆周率与级数** 圆周率 我国古代数学家对圆周率方面的研究工作,成绩是突出的.三国时期的刘徽.南北朝时期的祖冲之都在这个领域取得过辉煌战绩. 有了计算机,圆周率的计算变得十分容易了.如今,人们创 ...
 - 2018年全国多校算法寒假训练营练习比赛(第二场)H-了断局
			
题目描述 既然是了断局了,大家就随便玩玩数字呗.已知一个数列前十项分别是{0, 1, 1, 2, 4, 7, 13, 24, 44, 81},小G不满足呀:我要更多的数!!!不给就不让你们玩了.小G会 ...
 - PAT 有几个PAT
			
字符串 APPAPT 中包含了两个单词 PAT,其中第一个 PAT 是第 2 位(P),第 4 位(A),第 6 位(T):第二个 PAT 是第 3 位(P),第 4 位(A),第 6 位(T). 现 ...
 - Centos宝塔安装NextCloud
			
官方版本列表链接:https://download.nextcloud.com/server/releases/ 我下载的是 16.0.6版本,下载链接:https://download.nextcl ...
 - Netty源码学习系列之4-ServerBootstrap的bind方法
			
前言 今天研究ServerBootstrap的bind方法,该方法可以说是netty的重中之重.核心中的核心.前两节的NioEventLoopGroup和ServerBootstrap的初始化就是为b ...
 - zabbix 磁盘分区监控
			
系统环境 Zabbix 版本:3.4 操作系统版本:centos7.4 监控分区 / ./boot ./home 先创建监控项的模板 点击创建监控项 名称随意填写,键值的话因为我们监控车的是磁盘剩 ...
 - nginx下通过子路径配置多个vue单页应用的方法
			
千辛万苦在Stack Overflow上找来的,记下吧. https://stackoverflow.com/q/31519505/13651734 我的需求是 首页:/ 项目a:/aaa 项目 b: ...
 - sql server  取多条数据的最大值
			
实列: SELECT a.BillDate '[开票时间]', a.Hdbh '[运单号]', a.Status '运单状态', a.DisplayStatus '运单状态字', b.name '开票 ...
 - @codeforces - 674G@ Choosing Ads
			
目录 @description@ @solution@ @accepted code@ @details@ @description@ 给定长度为 n 的序列,m 次询问以及参数 p.共有两类询问: ...