拖好久的animation…温馨提示,先看效果,代码附在讲解后


上篇说到@keyframe可以定义动画,animation就是将@keyframe所定义好的动画添加在元素身上。

animation可以传8个参数,常用的有6个,动画名称(@keyframe定义好的),执行时长动画类型(默认ease),执行延时时常(默认0),动画循环次数(默认1),运动方向(默认normal)

对定义动画有问题移步@keyframe,执行和执行延时时长也木得问题,重点讲动画类型、动画循环次数、运动方向

1.动画类型

动画类型的属性值与transition相同,ease,linear,ease-in,ease-out,ease-in-out,cubic-bezier,step-start,step-end,steps(num,[ start | end ] ),除了step系列,其余在transition中和贝塞尔曲线中讲过CSS3过渡属性transition详解、贝塞尔曲线,那么就来康康step系列吧

(1)steps(num, start / end)

知识点1:num表示该动画的上一关键帧到下一关键帧分几步完成,步数越多动画越细腻,举个例子吧,图1为linear属性值的动画效果,图2为属性值为steps(1, end)的动画效果。

图1 linear

图2 steps(1,end)

知识点2:end与start的区别。end表示保留当前帧状态,直到这一关键帧动画结束,忽略最后一帧的效果(由图1图2对照可知最后一帧绿色没有显示),配合使用forwards,可以看到最后一帧,如图3

图3 forwards

start保留下一段帧状态,直到这段一关键帧动画结束,忽略第一帧的状态,如图4,没有显示第一帧的黄色,一般不常使用start

图4 steps(1, start)

再举一个分4步执行一个关键帧的例子,如图5

图5 steps(4,end)

(2)step-end与step-start

step-end相当于steps(1, end),step-start相当于steps(1, start)

2.动画循环次数

可以填num / infinite,num表示确定循环多少次,infinite表示循环无数次

3.运动方向

可以填normal(默认),reverse(反方向),alternate(正方向->反方向->正方向),alternate-reverse(反方向->正方向->反方向),与infinite配合使用,举例alternate,如图6,其中小方块在左下角停留没有移动到左上角就是因为end忽略最后一帧的问题

图6 alternate

以上所有例子代码如下

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><style>* {margin: 0;padding: 0;}@keyframes run {0% {left: 0;top: 0;background-color: #ffb;}25% {left: 100px;top: 0;background-color: #fbf;}50% {left: 100px;top: 100px;background-color: #bff;}75% {left: 0px;top: 100px;background-color: #fbb;}100% {left: 0px;top: 0px;background-color: #bfb;}}.wrapper {width: 200px;height: 200px;border: 1px solid #000;position: absolute;left: 100px;top: 100px;}.demo {position: absolute;width: 100px;height: 100px;background-color: #bbf;}.run {/* animation: run 4s linear infinite; *//* animation: run 4s steps(1,end); *//* animation: run 4s steps(4,end); *//* end + forwards *//* animation: run 4s steps(1,end) forwards; *//* animation: run 4s step-end; *//* animation: run 4s steps(1,start) alternate; */animation: run 4s steps(1,end) infinite alternate;}button {position: absolute;width: 50px;height: 25px;line-height: 25px;top: -26px;left: -1px;}</style>
</head><body><div class="wrapper"><div class="demo"></div><button>run</button></div></body>
<script>var demo = document.getElementsByClassName('demo')[0];var runBtn = document.getElementsByTagName('button')[0];runBtn.onclick = function () {demo.classList += " run";}
</script></html>

我的承诺兑现啦,动画结束后,CSS3的内容剩transform了

但是暂时不打算更CSS3了,一方面博主已经学到bootstrap啦~~~,另一方面其实博主自己也没搞很明白呢,感觉讲不清楚,个人觉得虽然效果很炫酷吧,但是不是很常用的样子呀,所以拖一拖,以后再更吧

所以接下来直接更bootstrap了,加油啦!

1分钟深入了解CSS3的动画属性animation相关推荐

  1. css情景动画,css3中的动画属性animation应用场景及编写代码教程

    讲解一下css3中的动画属性animation应用场景及编写代码教程 以下讨论的是和css3 动画 属性 animation 相关的css3中的动画属性animation应用场景及编写代码教程教程文章 ...

  2. CSS3动画属性 animation详解(看完就会)

    CSS3动画属性 animation 文章包含个人理解错误请指出   往期文章 [css高级]变量详解 轮播图swiper框架的基本使用 [Transform3D]转换详解(看完就会) [css动画] ...

  3. 不炫技,SVG+CSS3 旋转动画属性就能实现的梦幻效果

    CSS3的动画相关的基础的属性基本都涉猎过了,个人认为,其中最复杂的是d:path()路径变形动画,超过3D,而位移.轨迹.旋转.缩放.斜切什么的,相对简单一些,但作为非动画设计师而言,灵活的掌握这些 ...

  4. html css动画自动旋转,不炫技,SVG+CSS3 旋转动画属性就能实现的梦幻效果

    CSS3的动画相关的基础的属性基本都涉猎过了,个人认为,其中最复杂的是d:path()路径变形动画,超过3D,而位移.轨迹.旋转.缩放.斜切什么的,相对简单一些,但作为非动画设计师而言,灵活的掌握这些 ...

  5. css3动画属性animation

    一,animation属性 1.在css3中定义了新属性animation用于制作动画效果 2.一个完整的动画效果由animation属性和@keyframes动画帧组成. 二,animation子属 ...

  6. 使用css3的动画属性@keyframes创建小说轮播图

    最近一直在琢磨做一个小说网站模板,在寻找灵感时发现一个很好的小说展示效果-小说三维轮播,如下图所示: 这种小说轮播展示方法不仅美观而且节省页面空间,那么他到底怎么实现的呢?由于本人是一个小白,所以去网 ...

  7. 11、CSS3的动画效果(animation)

    1.动画效果(animation) animation属性值 动画名称.动画时间.速度.延迟.次数 animation-name 规定需要绑定到选择器的keyframe名称 animation-dur ...

  8. css3新增动画属性(过度动画 变形动画 关键帧动画)

    目录 过度动画transition 多属性值过渡 2d变形transform 平移 应用:实现居中(不要求知道盒子的宽高) 缩放 旋转 倾斜 修改变形中心的属性 变形属性的复合写法 3D变形动画 3d ...

  9. CSS3 自定义动画(animation)

    除了在之前的文章中介绍过的 CSS3 的变形 (transformation) 和转换 (transition) 外,CSS3 还有一种自由度更大的自定义动画,开发者甚至可以使用变形(transfor ...

最新文章

  1. mysql分页 redis_分页查询和redis
  2. 计算2个时间之间经过多少Ticks
  3. div固定在浏览器顶部_关于浏览器的兼容问题
  4. rails常用验证方法 (转)
  5. XamlReader 动态加载XAML
  6. 毕业设计-基于Javaweb实现超市管理系统
  7. 华为LTC/IPD/ITR三大核心流程变革看一篇文章就全明白啦!
  8. 详细讲解修改allure报告自定义的logo和名称中文
  9. LTE中的CQI RI PMI参数
  10. 一个软件项目如何做成本预估
  11. 在SQLserver中如何获得两个日期相减的天数?
  12. Python编程之四书五经
  13. IDEA运行main方法找不到类java.lang.ClassNotFoundException: javax.servlet.ServletRequest
  14. foxmail导地址簿 乱码_foxmail的乱码之谜
  15. iOS 保持APP在后台长时间运行
  16. 杭电ACM 1713 相遇周期
  17. Bellman算法和SPFA算法
  18. 加载dll出错的解决方法
  19. 第一个C跨平台工具whoport
  20. 怀旧服显示服务器已满,魔兽世界怀旧服还未开启就已人满为患

热门文章

  1. Python 中的作用域
  2. Cocos2d-x Win7环境编译apk
  3. 面试官:String的最大长度是多少?
  4. Go服务迁到K8s后老抽风重启? 记一次完整的线上问题解决过程
  5. 【传统PSTN与互联网通信】
  6. 万字详解:腾讯如何自研大规模知识图谱 Topbase
  7. FFMPEG结构体分析之AVCodecContext
  8. Centos7更换阿里云yum源
  9. 基于SpringBoot,SpringSession和redis的会话共享
  10. NodeJS开发c++扩展模块