目录

一、transition过渡动画原理

二、使用keyframes关键帧

三、在vue中使用animate.css

同时使用过渡和动画


一、transition过渡动画原理

当元素被transition标签包裹之后,vue会自动分析被包裹的元素的css样式,然后构建一个动画的流程。

在动画开始执行的瞬间会往div标签上增加两个样式:fade-enter、fade-enter-active,当动画第一帧结束开始第二帧的时候,会移除fade-enter样式,同时加上fade-enter-to样式。在动画执行的最后会将fade-enter-active和fade-enter-to都移除。

tip:

transition上的name是起了个名字,不加name属性后续的vue增加的样式就是v-enter和v-enter-active

在动画隐藏的过程中原理如下:

流程和上诉显示过程一样

代码例子如下

<template><div><transition name="fade"><div v-if="show">hello world</div></transition><button @click="change">切换</button></div>
</template><script scoped>
export default {name: 'BaseAnimate',data () {return {show: true}},methods: {change () {this.show = !this.show}}
}
</script><style scoped>.fade-enter,.fade-leave-to{opacity: 0;}.fade-enter-active,.fade-leave-active{transition: opacity 1s;}
</style>

效果:

二、使用keyframes关键帧

<template><div><transition name="fade"><div v-if="show">hello world</div></transition><button @click="change">切换</button></div>
</template><script>
export default {name: 'keyframes',data () {return {show: true}},methods: {change () {this.show = !this.show}}
}
</script><style scoped>@keyframes bounce-in {0% {transform: scale(0);}50% {transform: scale(1.5);}100% {transform: scale(1);}}
//会自动在页面中name为fade的标签上插入这个样式,或者直接在标签上写enter-active-class和leave-active-class,将写好的css样式名字赋上即可.fade-enter-active{transform-origin: left center;animation: bounce-in 1s;}.fade-leave-active{transform-origin: left center;animation: bounce-in 1s reverse;}
</style>
//也可以使用from to 相当于0%-100%
@keyframes mymove
{
from {top:0px;}
to {top:200px;}
}

效果

三、在vue中使用animate.css

首先使用npm安装animate.css

npm install animate.css --save

然后在mian.js里引入

import animate from 'animate.css'
Vue.use(animate)

代码如下:animated 类似于全局变量,它定义了动画的持续时间,默认1s;swing是动画具体的动画效果的名称,你可以选择任意的效果。具体效果可查看官网文档animate.css动画演示_dowebok

必须使用enter-active-class和leave-active-class

<transition name="fade"enter-active-class="animated swing "leave-active-class="animated shake "><div v-if="show">hello world</div>
</transition>

效果:

同时使用过渡和动画

在enter-active-class后加入自定义的过渡动画

<transition name="fade"type="transition":duration="{enter:5000,leave:10000}"
//enter和leave分别为入场动画和出场动画的时间appearenter-active-class="animated swing fade-enter-active"leave-active-class="animated shake fade-leave-active"appear-active-class="animated swing">
<!--          type="transition" 设置动画是以transition时间为标准结束还是animate时间为标准结束,animate默认时长是1s-->
<!--          appear-active-class 在页面刷新的时候展示动画效果与appear同时使用-->
<!--         :duration="5000" 自定义动画时长 在此结束后才移除class--><div v-if="show">hello world</div>
</transition>
<style scoped>.fade-enter,.fade-leave-to {opacity: 0;}.fade-enter-active {transform-origin: left center;transition: opacity 1s;}.fade-leave-active {transform-origin: left center;transition: opacity 1s;}
</style>

Vue07---vue中的css动画原理及animate.css使用相关推荐

  1. css 动画 重播,javascript – Animate.CSS重播?

    我有一个使用Animate.CSS的动画,如果用户愿意,我想重播,但我尝试的不起作用.这是代码: HTML: Replay JS: var $j = jQuery.noConflict(); $j(& ...

  2. 使用animate实现页面过度_很多人都在使用的开源CSS动画效果库——animate.css

    介绍 animate.css是一堆很酷,有趣且跨浏览器的动画,供你在项目中使用.非常适合强调,主页,滑块和一般的加水效果. animate.css v4正在进行许多改进和重大更改,包括CSS自定义属性 ...

  3. 如何实现vue中的列表动画,如何封装vue动画

    文章目录 一.vue中的列表动画如何实现 列表动画原理: 二.vue中如何封装动画 第1个版本:css动画版 第2个版本: js动画版(推荐) 一.vue中的列表动画如何实现 举个例子: 列表动画原理 ...

  4. VUE 中渲染Echarts 动画 柱状图

    VUE 中渲染Echarts 动画 柱状图 效果图: 安装Echarts依赖 要在vue中使用Echarts 需要先安装依赖 npm install echarts --save 这是我的Echart ...

  5. Vue中的Js动画与Velocity.js 的结合

    <!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8" ...

  6. 前端进阶必备技能:Vue中如何定制动画效果

    作为前端程序员,前端火起来的短短几年里技术更新迭代特别快,不仅是新的框架繁多,Vue,React,Angular轮番上场,各种工具,插件,库也是琳琅满目,就连基础的JavaScript语法的更新也是年 ...

  7. vue中路由的实现原理?

    vue中路由的实现原理? 1.首先需要了解一下Vue路由分为两种,一种是哈希路由,其最明显的特征是URL地址带'#'号的,其实对地址栏也就不怎么美观一点.其次是history路由也就是URL不带'#' ...

  8. js写css字体,js如何写出css动画 ?js写css动画的方法(代码)

    本篇文章给大家带来的内容是关于js如何写出css动画 ?js写css动画的方法(代码),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 使用setTimeout()或者setInter ...

  9. 元素出现在页面时,添加动画,配合animate.css使用

    我工作中经常遇到这样的需求:当某个元素出现在页面中时给他加一些动画,于是封装了一个配合animate.css使用的添加动画的函数.为了使用起来方便.哈哈,现在把他总结一下放到这里. 功能:某个元素出现 ...

最新文章

  1. SQL Server 中 SELECT INTO 和 INSERT INTO SELECT语句的区别
  2. Eclipse 中 Debug 模式跳转到 exitCurrentThread 的问题解决
  3. Daily Scrum02 12.09
  4. racle B-Tree和Bitmap索引对比详解
  5. 微信自定义tabbar有小红点_自定义微信小程序tabBar组件上边框的颜色
  6. 第一个Qt+opencv程序
  7. EF架构~了解一下,ADO.NET Entity Framework
  8. JVM入门到放弃之基本概念
  9. 《MySQL必知必会》学习笔记——第八章(用通配符过滤)
  10. cadlisp框选打印_caD批量打印LISP程序,因为工作需要。只要LISP的。
  11. 互联网在线地图平台对比分析
  12. JAVA语言基础知识总结
  13. 【原创】高精度好题 Heaven Cow与God Bull
  14. 利用R语言如何判别和分类
  15. 服务器读取本地文件,如何在云服务器上打开本地文件
  16. 捕鱼问题 matlab,鱼捕捞问题(数学建模).docx
  17. 群、环、域的概念总结
  18. DATAGUARD原理
  19. ACfly的Ctrl_Attitude.cpp的代码(可以看到在角速度环和高度环用ADRC)
  20. js统计英语单词的个数

热门文章

  1. ElasticSearch之ICU分词器
  2. 10分钟掌握表情包,1小时画出挤娃娃!
  3. TI Cortex-M4 USB Host CDC 驱动详解及源代码
  4. python——换披萨
  5. 华为(huawei)USG6000的CLI命令行综合配置之安全区域/nat策略/安全策略配置
  6. 从GitHub上面下载zip压缩包很慢怎么办
  7. 让chatgpt给我做个项目预算,感觉这样的项目预算才有的赚
  8. 评论框 添加表情 功能制作
  9. C语言怎样添加背景音乐
  10. [学习记录贴】#4——多级电子地图的制作