CSS3 高级教程:动画定义和使用
目录
前言
CSS3可以实现HTML元素的动画效果,不使用JavaScript或者是Flash也能实现动画效果,在CSS3中新增了一个transition模块,通过一些简单的CSS 事件来触发元素的外观变化,使得显示的效果更加细腻。
一、keyframes定义动画
使用@keyframes规则,可以创建动画,指定变化时用0%到100%,或关键词“from”和“to”,0%是动画的开头,100%是动画的结尾。我们把名称定义为move,关键代码如下:
@keyframes move {
0% {
transform: translateX(0px);
}
100% {
transform: translateX(1000px); //沿着X轴移动1000像素。
}
}
二、元素使用动画
1.关键代码
调用动画:
animation-name: move;
持续时间:
animation-duration: 2s;
2.使用举例
我们来看看这个动画是怎么完成的,首先直接建立一个盒子div,然后为其设置样式,其中有些属性什么意思不懂可以看下面第三节:CSS3动画常见属性
-
div {
-
width: 100px;
-
height: 100px;
-
background-color: powderblue;
-
animation-name: move;
-
animation-duration: 2s;
-
animation-timing-function: ease;
-
animation-delay: 2s;
-
animation-iteration-count: infinite;
-
animation-fill-mode: forwards;
-
}
三、CSS3动画常见属性
属性名称 | 关键代码 | 备注 |
动画名称 | annimation-name:动画名称 | 动画名称自主定义 |
持续时间 | animation-duration:2s | 单位是s或者ms |
运动曲线 | animation-timing-function:ease | 无 |
何时开始 | animation-delay: 1s; | 单位是s或者ms |
重复次数 | animation-iteration-count: infinite; | iteration 重复的 ,conut 次数, infinite 无限 |
是否反方向播放 | animation-direction: alternate; | 默认的是 normal 如果想要反方向 就写 alternate |
动画结束后的状态 | animation-fill-mode: forwards; | 默认的是 backwards 回到起始状态 我们可以让他停留在结束状态 forwards |
常用的动画属性这么多,单独使用的话非常的麻烦,我们可以使用简写来使用这些属性,
基本语法如下:
animation:动画名称 持续时间 运动曲线 何时开始 播放次数 是否反方向 动画起始或者结束状态
animation: name duration timing-function delay iteration-count direction fill-mode;
值得注意的是,前面两个属性name,duration是必要条件,一定要写
简写注意事项:
1.简写属性里面不包含animation-play-state
2.暂停动画:animation-play-state:paused;经常和鼠标经过等其他配合使用
3.想要盒子走回来,不是跳回来:animation-direction:alternate
4.盒子动画结束后,停在结束位置:animation-fill-mode:forwards
四、速度曲线
属性名称 | 属性值 | 备注 |
---|---|---|
匀速 | linear | 无 |
默认 | ease | 以低速开始,加快,结束前变慢 |
以低速开始 | ease-in | 无 |
以低速结束 | ease-out | 无 |
以低速开始和结束 | ease-in-out | 无 |
步长 |
steps() | 指定了时间函数中的间隔数量 |
下面使用步长来举一个简单的例子,效果图如下:
步长可以用于模拟电脑打字的效果,一起来看看如何实现的吧。还是建立一个div盒子,
把要输出的文字填入:
<div>模拟电脑打字输入</div>
CSS3代码部分:
首先使用overflow:hidden把没显示的部分隐藏,然后使用animation调用动画w,持续4s,forwards动画停留在结束状态,步长为10,简单来说就是在4s内显示10步以完成动画。
-
@keyframes w {
-
0% {
-
width: 0;
-
}
-
100% {
-
width: 200px;
-
}
-
}
-
-
-
div {
-
overflow: hidden;
-
font-size: 20px;
-
white-space: nowrap; //不换行
-
width: 0;
-
height: 30px;
-
background-color: pink;
-
animation: w 4s forwards steps(10);
-
}
总结
动画更多的是配个一些2D,3D效果共同使用来达到更好的效果,CSS3的动画相较于JavaScript或者是Flash更加简洁,在编程的过程中,也会少使用软件减轻工作量。
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /boutique/detail/tanhibcchh
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
TikTok加速器哪个好免费的TK加速器推荐
TK小达人 10-01 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
excel下划线不显示怎么办
PHP中文网 06-23 -
微信运动停用后别人还能看到步数吗
PHP中文网 07-22 -
excel打印预览压线压字怎么办
PHP中文网 06-22