以前写页面注重在功能上,对于transition和animation是只闻其声,不见其人,对于页面动画效果心理一直痒痒的。最近做活动页面,要求页面比较酷炫,终于有机会认真了解了。

transition:英文过渡的意思,作用是过渡效果;animation:英文活泼、生气、激励,动画片就是animation film,作用是动画效果。

transition在w3school的实例:

  1. 1 //将鼠标悬停在一个 div 元素上,逐步改变表格的宽度从 100px 到 300px:
  2. 2 div
  3. 3 {
  4. 4 width:100px;
  5. 5 transition: width 2s;
  6. 6 -webkit-transition: width 2s; /* Safari */
  7. 7 }
  8. 8 div:hover {width:300px;}
  9. 9
  10. 10 //transition 属性是一个简写属性,用于设置四个过渡属性:
  11. 11
  12. 12 //指定CSS属性的name,transition效果
  13. 13 transition-property
  14. 14 //transition效果需要指定多少秒或毫秒才能完成
  15. 15 transition-duration
  16. 16 //指定transition效果的转速曲线
  17. 17 transition-timing-function
  18. 18 //定义transition效果开始的时候
  19. 19 transition-delay

animation在w3school的实例:

  1. 1 //使用简写属性,将动画与 div 元素绑定
  2. 2 div
  3. 3 {
  4. 4 animation:mymove 5s infinite;
  5. 5 -webkit-animation:mymove 5s infinite; /* Safari 和 Chrome */
  6. 6 }
  7. 7 //animation 属性是一个简写属性,用于设置六个动画属性:
  8. 8 //规定需要绑定到选择器的 keyframe 名称。。
  9. 9 animation-name
  10. 10 //规定完成动画所花费的时间,以秒或毫秒计。
  11. 11 animation-duration
  12. 12 //规定动画的速度曲线。
  13. 13 animation-timing-function
  14. 14 //规定在动画开始之前的延迟。
  15. 15 animation-delay
  16. 16 //规定动画应该播放的次数。
  17. 17 animation-iteration-count
  18. 18 //规定是否应该轮流反向播放动画。
  19. 19 animation-direction

animation使用@keyframes规定动画

  1. 1 @keyframes animationname {
  2. 2 keyframes-selector {
  3. 3 css-styles;
  4. 4 }
  5. 5 }
  6. 6 //必需。定义动画的名称。
  7. 7 animationname
  8. 8 //必需。动画时长的百分比。
  9. 9 //合法的值:
  10. 10 //0-100%
  11. 11 //from(与 0% 相同)
  12. 12 //to(与 100% 相同)
  13. 13 keyframes-selector
  14. 14 //必需。一个或多个合法的 CSS 样式属性。
  15. 15 css-styles

以上是transition和animation的基础知识,最项目使用vue这样主流框架,就用vue使用下transition和animation

  1. 第一步就是要安装依赖,只安装animation动画库,transiton是直接可以使用的标签,不用去下载依赖

    1. npm install animate.css save
  2. 全局引用一下animation动画库
    1. 1 import animate from 'animate.css'
    2. 2 Vue.use(animate); 
  3. 简单使用一下animation动画库,只要在class加上规定的动画效果名称就可以
    1. 1 <div class="rotateIn"
    2. 2 style="animation-duration:2s;
    3. 3 animation-delay:1s;
    4. 4 animation-iteration-count:1;
    5. 5 animation-fill-mode:both;">
    6. 6 </div>
    7. 7 <div class="fadeInLeft"
    8. 8 style="opacity:0;
    9. 9 animation-duration:3s;
    10. 10 animation-delay:2s;
    11. 11 animation-iteration-count:1;
    12. 12 animation-fill-mode:both;">
    13. 13 </div>
    14. 14 <div class="fadeInUp"
    15. 15 style="opacity:0;
    16. 16 animation-duration:3s;
    17. 17 animation-delay:3s;
    18. 18 animation-iteration-count:1;
    19. 19 animation-fill-mode:both;">
    20. 20 </div>
  4. 正式使用transiton和animation,把知识进阶一下,使用transition标签

    1、使用基础的transiton和animation动画

    1. 1 /*v是默认的,在transition中定义name属性
    2. 2 <transition name=fade>
    3. 3 v-enter-from就要改成fade-enter-from
    4. 4 */
    5. 5 <transition>
    6. 6 <div>hello world</div>
    7. 7 </transition>
    8. 8 //使用transition标签时,直接在css中控制
    9. 9 /*元素进入前效果*/
    10. 10 .v-enter-from{
    11. 11 opacity: 0;
    12. 12 }
    13. 13 /*元素进入时效果*/
    14. 14 .v-enter-active{
    15. 15 /*使用定义的动画*/
    16. 16 animation: shake 0.3s;
    17. 17 }
    18. 18 /*元素进入后效果*/
    19. 19 .v-enter-to{
    20. 20 opacity: 1;
    21. 21 }
    22. 22 /*元素离开前效果*/
    23. 23 .v-leave-from{
    24. 24 opacity: 1;
    25. 25 }
    26. 26 /*元素离开时效果*/
    27. 27 .v-leave-active{
    28. 28 /*使用定义的动画*/
    29. 29 animation: shake 0.3s;
    30. 30 }
    31. 31 /*元素离开后效果*/
    32. 32 .v-leave-to{
    33. 33 opacity: 0;
    34. 34 }
    35. 35 /*定义一个动画效果*/
    36. 36 @keyframes shake {
    37. 37 0%{
    38. 38 transform: translateX(-100px);
    39. 39 }
    40. 40 50%{
    41. 41 transform: translateX(-50px);
    42. 42 }
    43. 43 0%{
    44. 44 transform: translateX(50px);
    45. 45 }
    46. 46 }

    2、使用trnasition标签的属性,结合animation的动画库

    1. 1 <transition
    2. 2 transition :duration="{enter:1500,leave:600}"
    3. 3 enter-from-class="animated"
    4. 4 enter-active-class="animated"
    5. 5 enter-to-class="animated"
    6. 6 leave-from-class="animated fadeOut"
    7. 7 leave-active-class="animated fadeOut"
    8. 8 leave-to-class="animated fadeOut"
    9. 9 v-on:before-enter="beforeEnter"
    10. 10   v-on:enter="enter"
    11. 11   v-on:after-enter="afterEnter"
    12. 12   v-on:enter-cancelled="enterCancelled"
    13. 13   v-on:before-leave="beforeLeave"
    14. 14   v-on:leave="leave"
    15. 15   v-on:after-leave="afterLeave"
    16. 16   v-on:leave-cancelled="leaveCancelled"
    17. 17 mode="out-in" appear
    18. 18 >
    19. 19 /*enter-from-class就是v-enter-from元素进入前
    20. 20 animated就是使用animation动画库,fadeOut就是动画效果
    21. 21 */
    22. 22 /*before-enter这些就是钩子函数,是滑动进入状态
    23. 23 mode="out-in"是设定动画是先入后出,还是先出后入
    24. 24 appear 是设置加载时就要开始动画
    25. 25 */
    26. 26 // 进入中
    27. 27 //动画进入前
    28. 28 // --------
    29. 29 beforeEnter: function (el) {
    30. 30 //el就是dom元素
    31. 31 // ...
    32. 32 },
    33. 33 // 此回调函数是可选项的设置
    34. 34 // 与 CSS 结合时使用
    35. 35 //动画进入时
    36. 36 enter: function (el, done) {
    37. 37 // ...
    38. 38 done()
    39. 39 },
    40. 40 //动画进入后
    41. 41 afterEnter: function (el) {
    42. 42 // ...
    43. 43 },
    44. 44 //动画进入完成
    45. 45 enterCancelled: function (el) {
    46. 46 // ...
    47. 47 },
    48. 48 // --------
    49. 49 // 离开时
    50. 50 // --------
    51. 51 beforeLeave: function (el) {
    52. 52 // ...
    53. 53 },
    54. 54 // 此回调函数是可选项的设置
    55. 55 // 与 CSS 结合时使用
    56. 56 leave: function (el, done) {
    57. 57 // ...
    58. 58 done()
    59. 59 },
    60. 60 afterLeave: function (el) {
    61. 61 // ...
    62. 62 },
    63. 63 // leaveCancelled 只用于 v-show 中
    64. 64 leaveCancelled: function (el) {
    65. 65 // ...
    66. 66 }

    下面是animation常用的动画效果

    1. 1 fade: {
    2. 2 title: '淡入淡出',
    3. 3 fadeIn: '淡入',
    4. 4 fadeInDown: '向下淡入',
    5. 5 fadeInDownBig: '向下快速淡入',
    6. 6 fadeInLeft: '向右淡入',
    7. 7 fadeInLeftBig: '向右快速淡入',
    8. 8 fadeInRight: '向左淡入',
    9. 9 fadeInRightBig: '向左快速淡入',
    10. 10 fadeInUp: '向上淡入',
    11. 11 fadeInUpBig: '向上快速淡入',
    12. 12 fadeOut: '淡出',
    13. 13 fadeOutDown: '向下淡出',
    14. 14 fadeOutDownBig: '向下快速淡出',
    15. 15 fadeOutLeft: '向左淡出',
    16. 16 fadeOutLeftBig: '向左快速淡出',
    17. 17 adeOutRight: '向右淡出',
    18. 18 fadeOutRightBig: '向右快速淡出',
    19. 19 fadeOutUp: '向上淡出',
    20. 20 fadeOutUpBig: '向上快速淡出'
    21. 21 },
    22. 22 bounce: {
    23. 23 title: '弹跳类',
    24. 24 bounceIn: '弹跳进入',
    25. 25 bounceInDown: '向下弹跳进入',
    26. 26 bounceInLeft: '向右弹跳进入',
    27. 27 bounceInRight: '向左弹跳进入',
    28. 28 bounceInUp: '向上弹跳进入',
    29. 29 bounceOut: '弹跳退出',
    30. 30 bounceOutDown: '向下弹跳退出',
    31. 31 bounceOutLeft: '向左弹跳退出',
    32. 32 bounceOutRight: '向右弹跳退出',
    33. 33 bounceOutUp: '向上弹跳退出'
    34. 34 },
    35. 35 zoom: {
    36. 36 title: '缩放类',
    37. 37 zoomIn: '放大进入',
    38. 38 zoomInDown: '向下放大进入',
    39. 39 zoomInLeft: '向右放大进入',
    40. 40 zoomInRight: '向左放大进入',
    41. 41 zoomInUp: '向上放大进入',
    42. 42 zoomOut: '缩小退出',
    43. 43 zoomOutDown: '向下缩小退出',
    44. 44 zoomOutLeft: '向左缩小退出',
    45. 45 zoomOutRight: '向右缩小退出',
    46. 46 zoomOutUp: '向上缩小退出'
    47. 47 },
    48. 48 rotate: {
    49. 49 title: '旋转类',
    50. 50 rotateIn: '顺时针旋转进入',
    51. 51 rotateInDownLeft: '从左往下旋入',
    52. 52 rotateInDownRight: '从右往下旋入',
    53. 53 rotateInUpLeft: '从左往上旋入',
    54. 54 rotateInUpRight: '从右往上旋入',
    55. 55 rotateOut: '顺时针旋转退出',
    56. 56 rotateOutDownLeft: '向左下旋出',
    57. 57 rotateOutDownRight: '向右下旋出',
    58. 58 rotateOutUpLeft: '向左上旋出',
    59. 59 rotateOutUpRight: '向右上旋出'
    60. 60 },
    61. 61 flip: {
    62. 62 title: '翻转类',
    63. 63 flipInX: '水平翻转进入',
    64. 64 flipInY: '垂直翻转进入',
    65. 65 flipOutX: '水平翻转退出',
    66. 66 flipOutY: '垂直翻转退出'
    67. 67 },
    68. 68 strong: {
    69. 69 title: '强调类',
    70. 70 bounce: '弹跳',
    71. 71 flash: '闪烁',
    72. 72 pulse: '脉冲',
    73. 73 rubberBand: '橡皮筋',
    74. 74 shake: '左右弱晃动',
    75. 75 swing: '上下摆动',
    76. 76 tada: '缩放摆动',
    77. 77 wobble: '左右强晃动',
    78. 78 jello: '拉伸抖动'
    79. 79 }

结尾,学习用些transition和animation肯定能增加用户体验感,做出一些高大上的网页。

    

终于不再对transition和animation,傻傻分不清楚了 --vue中使用transition和animation的更多相关文章

  1. vue中使用transition标签底部导航闪烁问题

    <transition :name="transitionName" :duration="{ enter: 500, leave: 0 }" > ...

  2. vue中使用transition和animate.css动画效果

    一.单个动画中,使用div中引用animate动画 1.下载依赖 npm install animate.css –save 2.main.js中全局引用 import animate from 'a ...

  3. [转帖]十分钟快速理解DPI和PPI,不再傻傻分不清!

    十分钟快速理解DPI和PPI,不再傻傻分不清! https://baijiahao.baidu.com/s?id=1605834796518990333&wfr=spider&for= ...

  4. JS魔法堂:属性、特性,傻傻分不清楚

    一.前言 或许你和我一样都曾经被下面的代码所困扰 var el = document.getElementById('dummy'); el.hello = "test"; con ...

  5. 学点经济学:M0、M1、M2、M3,傻傻分不清?(转载)

    来源:http://t.10jqka.com.cn/pid_97006727.shtml 学点经济学:M0.M1.M2.M3,傻傻分不清? 25,508人浏览 2018-08-03 11:06 常听人 ...

  6. 【华为敏捷/DevOps实践】7. 敏捷,DevOps,傻傻不分清楚【华为云技术分享】

    文:姚冬(华为云DevCloud首席技术布道师,资深DevOps与精益/敏捷专家,金融解决方案技术Leader,中国DevOpsDays社区核心组织者) 前言 敏捷是什么?DevOps是什么?两者有什 ...

  7. 傻傻分不清之 Cookie、Session、Token、JWT

    傻傻分不清之 Cookie.Session.Token.JWT 什么是认证(Authentication) 通俗地讲就是验证当前用户的身份,证明“你是你自己”(比如:你每天上下班打卡,都需要通过指纹打 ...

  8. URI与URL傻傻分不清楚?

    前言 总所周知,缓存是解决Http1.1协议传输性能的问题中最主要的手段. 缓存既可以存在于浏览器上,也可以存在于服务器中. 而影响缓存的Http头部有很多,其中Cache-Control是比较重要的 ...

  9. css3中动画(transition)和过渡(animation)详析

    css3中动画(transition)和过渡(animation)详析

随机推荐

  1. DB2 建表,添加字段,删除字段,修改字段等常用操作

    转载:http://blog.sina.com.cn/s/blog_67aaf4440100v01p.html,稍作修改. --创建数据库 create database Etp; --连接数据库 c ...

  2. DockerPush

    1.阿里云镜像发布流程 2.镜像生成 语法:docker commit [OPTIONS] 容器ID [REPOSITORY[:TAG]] [root@pluto data]# docker imag ...

  3. php openssl 加密解密

    $config = array( "digest_alg" => "sha512", "private_key_bits" => ...

  4. ESP定律脱壳——NsPack3.x脱壳

    首先进行查壳,NsPack 将程序拖入x64dbg 程序入口处标志性的push F8单步,发现仅有esp寄存器有变化 在esp上右键,在内存窗口查看,下硬件断点 F9运行程序,程序断在pop之后. 使 ...

  5. 如何使用iMazing编辑iOS设备的备份

    乍一看,编辑iPhone或iPad的备份似乎是一个奇怪的命题,但实际上这样做的原因有很多,例如在备份数据损坏时进行修复,又如合并来自不同设备的数据. iMazing对备份文件编辑的支持非常全面,即使备 ...

  6. 网络拓扑实例之RRPP单环(五)

    组网图形 RRPP简介 在城域网和企业网的网络规划以及实际组网应用中大多会采用环网结构来提高网络的可靠性.采用环网结构的好处是:当环上任意一个节点或节点之间的链路发生故障,都可以将数据流量切换到备份链 ...

  7. MySql学习笔记--详细整理--上

    目录 MySql MySql安装 连接数据库 操作数据库 数据库的列类型 数据库的字段属性 创建数据库 修改删除表 数据管理 外键 DML语言 添加 修改 删除 DQL查询数据(重点) 查询 去重 w ...

  8. Java复数的定义与描述

    1 //4.复数的定义与描述 2 package test; 3 4 import java.util.Scanner; 5 6 public class complex {//复数类 7 doubl ...

  9. mysql undo+redo+binlog

    rt 数据库事务开始之前,会将要修改的记录存放到UNdo日志里,当事务回滚时或数据库崩溃时,可以利用undo日志撤销未提交事务对数据库产生的影响. 逻辑日志,记录一个过程,提交后不会删除.delete ...

  10. Beta冲刺——总结

    这个作业属于哪个课程 软件工程 (福州大学至诚学院 - 计算机工程系) 这个作业要求在哪里 Beta 冲刺 这个作业的目标 团队进行Alpha冲刺 作业正文 正文 其他参考文献 无 团队GitHub地 ...