我们为页面设置动画时,往往会用到transition还有animation以及transfrom属性或者用到js。

其实通常情况下,对于使用js我们更加倾向于使用css来设置动画。

transfrom就不用说了,它本身就一个css属性。

transition 是可以为一个或者多个用数值表示的CSS属性发生变化时添加动画效果。

.demo{

overflow: hidden;

width: 100px;

height: 100px;

position: relative;

}

.aaa{ width: 100%; height: 50px;

position: absolute; bottom: -50px; opacity: 0;

-webkit-transition: all 0.85s ease; -moz-transition: all 0.85s ease; -o-transition: all 0.85s ease; -ms-transition: all 0.85s ease; transition: all 0.85s ease; }

.demo:hover .aaa{

opacity: 1;

bottom: 0;

}

transition的属性有transition-property(css属性name,transition效果)、transition-duration(动画持续多少秒)、transition-timing-function(动画的变化过程速度曲线)、transition-delay(动画开始的时候,也就是延迟多少秒)

相对于animation,transition从某种层度上讲,动画控制的更粗一些,它唯一能定义动画变化过程效果的便是transition-timing-function属性,而animation提供的keyframe方法,可以让你手动去指定每个阶段的属性。此外animation还封装了循环次数,动画延迟,反向循环等功能,更加自由和强大。

.animation:before, .animation:after{

content:'';

width: 50%;

height: 100%;

animation: mymove 3s ease-in-out alternate infinite; -moz-animation: mymove 3s ease-in-out alternate infinite; -webkit-animation: mymove 3s ease-in-out alternate infinite; -o-animation: mymove 3s ease-in-out alternate infinite;

}

@keyframes mymove {

from { width: 50%; }

to { width: 0%; }

}

这里就不贴出keyframes浏览器适配了。

同时还可以这样想,transition是从:hover延伸出来的,不管是动态设置的还是非动态设置的过渡效果,只要过渡效果指定的属性值发生了变化就会触发过渡效果。

而animation是从flash延伸出来的,使用关键帧的概念,如果是非动态设置的,那么页面加载完后就会触发动画效果;如果是动态设置的,那么设置完后(假设没有设置 delay)就会触发动画效果。后面再改变属性值也不会触发动画效果了,除了一种情况(这种情况不会触发transition定义的过渡效果),就是元素从 display:none 状态变成非 display:none 状态时,也会触发动画效果。

极端条件下,animation占用的资源相应的比transition多,所以如果能用transition实现,就尽量用transition来实现,如果追求复杂更自由的动画,就可以用animation。

作者:Yhong_
链接:https://www.jianshu.com/p/3befa0f2fa02
来源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

css3,transition,animation两种动画实现区别的更多相关文章

  1. css3 transition animation nick

    时光转眼即逝,又到周六了,今天写点某部分人看不起的css玩玩! 转换 转换属性transform: 浏览器前缀: -webkit-transform;-o-transform;-moz-transfo ...

  2. Java中serialVersionUID的解释及两种生成方式的区别(转载)

    转载自:http://blog.csdn.net/xuanxiaochuan/article/details/25052057 serialVersionUID作用:        序列化时为了保持版 ...

  3. jsp中两种include的区别【转】

    引用文章:http://www.ibm.com/developerworks/cn/java/j-jsp04293/ http://www.cnblogs.com/lazycoding/archive ...

  4. UIImage两种初始化的区别

    UIImage可以通过以下两种方式进行初始化: //第一种初始化方式:[注意使用这种初始化的时候如果是png格式的可以不给后缀名,根据屏幕的的分辨率去匹配图片] UIImage *image = [U ...

  5. PHP中数组合并的两种方法及区别介绍

    PHP数组合并两种方法及区别 如果是关联数组,如下: 复制代码代码如下: $a = array( 'where' => 'uid=1', 'order' => 'uid', ); $b = ...

  6. Android小项目之九 两种上下文的区别

    ------- 源自梦想.永远是你IT事业的好友.只是勇敢地说出我学到! ---------- 按惯例,写在前面的:可能在学习Android的过程中,大家会和我一样,学习过大量的基础知识,很多的知识点 ...

  7. ACE_linux:Reactor与Proactor两种模式的区别

    一.概念: Reactor与Proactor两种模式的区别.这里我们只关注read操作,因为write操作也是差不多的.下面是Reactor的做法: 某个事件处理器宣称它对某个socket上的读事件很 ...

  8. 什么是CS和BS结构,两种结构的区别

    什么是CS和BS结构,两种结构的区别 什么是C/S和B/S结构?         C/S又称Client/Server或客户/服务器模式.服务器通常采用高性能的PC.工作站或小型机,并采用大型数据库系 ...

  9. Ajax的get和post两种请求方式区别

    Ajax的get和post两种请求方式区别 (摘录):http://ip-10000.blog.sohu.com/114437748.html 解get和post的区别. 1. get是把参数数据队列 ...

随机推荐

  1. tomcat项目迁移,无法访问,报“404”错误,原因分析

    首先,导出项目文件和MySQL数据库(项目文件直接tar&&cp:数据库直接mysqldump生成sql文件) 再,进行导入步骤,项目文件拷贝到webapps下,并赋予bin相关文件执 ...

  2. TestNG测试用例重跑详解及实践优化

    测试用例运行稳定性是自动化质量的一个重要指标,在运行中需要尽可能的剔除非bug造成的测试用例执行失败,对于失败用例进行重跑是常用策略之一.一种重跑策略是所有用例运行结束后对失败用例重跑,另一种重跑策略 ...

  3. python-文件字符分布【get()函数与.sort(key=lambda x:x[0],reverse = False)】

    文件字符分布 描述 统计附件文件的小写字母a-z的字符分布,即出现a-z字符的数量,并输出结果.‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬ ...

  4. php接口开发经验总结

    接口开发采用jwt方式验证: 接口开发最好留多几个返回方式,方便本地调用: 待更新.............

  5. Python Serial 串口基本操作(收发数据)

    1.需要模块以及测试工具 模块名:pyserial 使用命令下载:python -m pip install pyserial 串口调试工具:sscom5.13.1.exe 2.导入模块 import ...

  6. python循环中对一个列表的赋值问题

    参考:https://www.cnblogs.com/zf-blog/p/10613981.html https://www.cnblogs.com/andywenzhi/p/7453374.html ...

  7. 在dynamics 365 中,看字段的描述需要到系统字段设置里面才能看到,这里提供一种sql直接看字段和实体名描述的方法

    1.在crm对应的主数据库执行下面存储过程: -- ============================================= -- Author: <Author,,Name& ...

  8. codingame

    无聊登了一下condingame,通知说有本周谜题,正好刚撸完bfs,想尝试下. 题目链接:https://www.codingame.com/ide/17558874463b39b9ce6d4207 ...

  9. An invalid domain [.test.com] was specified for this cookie 原因分析

    java.lang.IllegalArgumentException: An invalid domain [.test.com] was specified for this cookie 以上博客 ...

  10. API 网关 Kong

    什么是 API 网关? 所谓网关,主要作用就是连接两个不同网络的设备,而今天所讲的 API 网关是指承接和分发客户端所有请求的网关层. 为什么需要网关层?最初是单体服务时,客户端发起的所有请求都可以直 ...