Animation of CSS3
文章目录
- Animation of CSS3
- keyframes
- animation-name、animation-duration
- animation-timing-function、animation-delay
- animation-iteration-count
- animation-direction
- normal
- reverse
- alternate
- alternate-reverse
- animation-play-state
- animation-fill-mode
- none
- forwards
- backwards
- both
- 应用
Animation of CSS3
animation是实现CSS3动画最重要的一个属性,虽然说transition也能实现这样的效果,但是transition实现的只是说从A状态变换到B状态的效果,它想在变换到C状态是办不到的,但是animation可以,animation可以一直变下去,CSS3的动画效果主要还是围绕着animation展开的。
但是CSS3的动画效果也没那么强大,只能实现一些简单的动画。
在开始之前先写一个方块,通过让这个方块运动来研究animation是怎么运用的。
keyframes
要用animation实现状态的改变的话,就必须把这些状态记录下来,放到一个容器里面,然后按照顺序来执行,这个容器就是@keyframes
也就是关键帧容器:
有几个状态就定义几个关键帧,怎么定义关键帧呢,要用百分数来做:
@keyframes run {0%{}25%{}50%{}75%{}100%{}
}
其实0%也可以写成from
,100%也可以写成to
,其他的都没有特殊写法。
兼容性问题的话,过渡版本的浏览器是要加上-webkit-的:
animation-name、animation-duration
接下来用这个属性让方块转圈:
@keyframes{0%{left:0;top:0;}25%{left:100px;top:0;}50%{left:100px;top:100px;}75%{left:0;top:100px;}100%{left:0;top:0;}
}
div{position:absolute;width:100px;height:100px;background-color: red;animation: run 4s;
}
这样就可以让方块绕正方形轨迹运动,run
也就是animation-name
,时间是按照着关键帧所占的比例相应划分。
当然也可以填多组值:
animation:run 4s, color-change 4s;
animation-timing-function、animation-delay
这两个属性的作用和transition里面是相似的。
但是animation-timing-function
控制的是每两个关键帧之间的过渡,也就是每一段之间的过渡都是相同的。
animation-iteration-count
这个属性控制动画执行多少次。
可以填数字,也可以填 infinite
无限循环。
animation-direction
这个属性定义运动方向。
normal
正常方向。
reverse
反方向运行。
alternate
动画先正常运行再反方向运行,并持续交替运行。
这个可以实现一个钟摆运动。
alternate-reverse
动画先反运行再正方向运行,并持续交替运行。
这个属性值是不常用的,因为没必要,提前设置好方向的话,altemate也就够用了。
animation-play-state
这个属性检索或设置对象动画的状态,有两个属性值,默认值是running
,也就是鼠标放上去以后运动,还有一个属性值是pause
,在鼠标放上去后可以暂停方块的运动,但是这个属性不常用,因为兼容性有问题,有的浏览器在鼠标放上去以后可以暂停,但是鼠标离开以后不会继续运动,所以这个属性尽量不用。
animation-fill-mode
动画运动完以后会回归到原始状态,那这个属性设置对象动画时间之外的状态。
none
默认值。不设置对象动画之外的状态。
forwards
设置对象状态为动画结束时的状态,这个属性值只是设置动画最后一帧结束之后的状态,不可以设置开始之前的。
backwards
设置对象状态为动画开始时的状态,这个属性也不可以设置结束之后的状态,只针对动画开始之前的状态。
both
设置对象状态为动画结束或开始的状态,这个属性值用的比较多。
应用
现在做一个太阳和月亮交替升落的动画,在做动画之前一定要看属性支不支持。
<div class="space"></div><div class="sun"></div><div class="moon"></div>
*{margin:0;padding:0;
}
body{background-color: #000;
}
@keyframes space-change{0%{opacity: .3;}25%{opacity: 1;}50%{opacity: .3;}75%{opacity: .1;}100%{opacity: .3;}
}
@keyframes sunrise{0%{opacity: 0;}10%{opacity: 1;transform:scale(.7, .7) translatex(0) translatey(0);}30%{transform:scale(.5, .5) translatex(0) translatey(-500px);opacity: 1;}50%{opacity: 0;transform:scale(.7, .7) translatex(400px) translatey(0);}100%{opacity: 0;}
}
@keyframes moonrise{0%{opacity: 0;}30%{opacity: 0;transform:translatey(0);}50%{opacity: 0;}70%{transform:translatey(-300px);opacity: 1;}80%{transform:translatey(-300px);opacity: 1;}90%{opacity: 0;}100%{transform:translatey(0);opacity: 0;}
}
.space{height:500px;background-image: linear-gradient(to bottom, rgba(0, 130, 255, 1), rgba(255, 255, 255, 1));animation: space-change 10s cubic-bezier(.5,0,.5,1) infinite;
}
.sun{position: absolute;left:calc(50% - 25px);top:calc(50% - 25px);width:50px;height:50px;background-color: #fff;border-radius:50%;transform:scale(.5, .5);box-shadow: 0px 0px 100px 50px #fff,0px 0px 250px 125px #ff0;animation:sunrise 10s infinite;
}
.moon{position: absolute;left:calc(50% + 400px);top:calc(50% - 50px);width:100px;height:100px;background-color: #fff;border-radius: 50%;box-shadow: 0px 0px 8px #fff, inset 0px 0px 8px #000;animation:moonrise 10s cubic-bezier(0,0,.5,.5) infinite;
}
.moon::after{position: absolute;content:"";width:90px;height:90px;background-color: #000;border-radius: 50%;left:-10px;top:-10px;
}
Animation of CSS3相关推荐
- 敲好看的CSS渐变色 和 敲好看的animation动画 css3
效果 完整代码: <!DOCTYPE html> <html lang="en"><head><meta charset="UT ...
- html animation 属性,CSS3动画属性:动画(animation)
一:动画(animation)的参数详解 由于上面用到了animation动画,这里详细介绍下这个animation的参数. 简介 CSS动画(Animations)简单说就是在一段固定的动画时间内暗 ...
- 弄清 CSS3 的 transition 和 animation
弄清 CSS3 的 transition 和 animation 原文:弄清 CSS3 的 transition 和 animation 弄清 CSS3 的 transition 和 animatio ...
- css动画走马灯5秒,css3 transition 和 animation实现走马灯
这段时间在做一个App,H5的开发.页面上有公告 以走马灯的形式显示出来. 在开始直接用的marquee标签,后来发现在ios客户端,走马灯移动不够平滑,有抖动现象. 对于有强迫症的我而言是无法忍受的 ...
- 用html怎么制作风车,css3 animation实现风车转动
项目中经常有用到动画效果,比如Loading.风车转动等等.最简单的办法是使用gif,但是gif在半透明背景下有白边,体验不友好,好在现在可以使用css3的anmiation来实现动画效果,极大的提升 ...
- CSS3简单特效--animation实现流光按钮
CSS3简单特效–animation实现流光按钮 在学习css3的过程中,发现很多看着炫酷的效果,利用css3的属性能很简单的实现,animation是css3动画效果中常见的属性.下面让我们了解一下 ...
- html css animation,css animation是什么?
animation是CSS3中的一个简写属性,可以通过设置六个动画属性来实现动画效果.这六个属性分别为动画名称.动画时间.速度曲线.动画延迟.播放次数及动画是否反向播放. 语法:animation: ...
- CSS3各个模块详解
一, CSS3 盒子 阴影 属性 box- shadow 也是 CSS3 新增 的 一个 重要 属性, 用来 定义 元素 的 盒子 阴影. inset: 阴影 类型, 可选 值. 如果不 设置, 其 ...
- CSS3的2D转换和3D转换,你了解了嘛?
css3的2D转换和3D转换 CSS3大纲: 本次讲解css3带来了两种转换:2D转换和3D转换 1. 2D转换 转换( transform)是CSS3中具有颠覆性的特征之一,可以实现元素的位移(tr ...
最新文章
- memcached原理详述及配置
- managedwifi.codeplex.com
- 关于xml的模糊查询问题
- 长假后第一天不想工作,这病咋治?
- iOS上相见恨晚的6个APP
- itertools mode 之 combinations用法
- LINUX下使用elasticsearch-jdbc工具实现MySQL同步到ElasticSearch 以及linux 64位centos系统安装jdk1.8
- yarn集群启动时,并不自动启动resoucemanager的原因
- 贴吧小爬虫之爬取源码
- 盘点物联网常用的八种通信协议
- 1.搭建JavaEE开发环境
- 吊炸天!一行命令快速部署大规模K8S集群!!!
- MySQL-Proxy实现MySQL读写分离
- hdu 1133 Buy the Ticket(递推+精度精算)
- 实验5.2 动态内存分配生成动态数组完成矩阵转置
- ORACLE有EXCEL中trend函数,【Excel函数】TREND函数 - 曹海峰个人博客
- 8psk信号的载波调制 matlab,EDGE系统中GMSK和8psk调制的应用原理
- LeetCode 1055. 形成字符串的最短路径
- ubuntu和kubuntu换源
- 通向Golang的捷径【20. 使用 Go 语言的 GAE】