多个元素的过渡
  1. <style>
  2.   .v-enter,.v-leave-to{
  3.     opacity: 0;
  4.   }
  5.   .v-enter-acitve,.v-leave-active{
  6.     opacity: opacity 1s;
  7.   }
  8. </style>
  9. <div id='app'>
  10.   <transition>
  11.     <div v-if='show'>hello world</div>
  12.     <div v-else>bye world</div>
  13.   </transition>
  14.   <button @click='handleClick'>切换</button>
  15. </div>
  16. <script>
  17. var vm = new Vue({
  18.   el:'#app',
  19.   data:{
  20.     show:true
  21.   },
  22.   methods:{
  23.     handleClick:function(){
  24.       this.show = !this.show;
  25.     }
  26.   }
  27. })
  28. </script>
按照之前的写法方式,渐隐渐出的效果并没有出现该有的效果,那么为什么呢?
在if else两个元素切换的时候,会尽量的复用dom,正是vue,dom的复用,导致动画的效果不会出现,如果想要vue不去复用dom,之前也说过,怎么做呢,给两个div不同的key值就行了
  1. <div v-if='show' key='hello'>hello world</div>
  2. <div v-else key='bye'>bye world</div>
这样就可以有个明显的动画效果,,多个元素过渡动画的效果
transition还提供了一个mode属性,in-out是先显示再隐藏,out-in是先隐藏再显示
多个组件的过渡
  1. <style>
  2.   .v-enter, .v-leave-to {
  3.     opacity: 0;
  4.   }
  5.   .v-enter-acitve, .v-leave-active {
  6.     transition: opacity 1s;
  7.   }
  8. </style>
  9. <div id='app'>
  10.   <transition mode='out-in'>
  11.     <child v-if='show'></child>
  12.     <child-one v-else></child-one>
  13.   </transition>
  14.   <button @click='handleClick'>切换</button>
  15. </div>
  16.  
  17. <script>
  18. Vue.component('child',{
  19.   template:'<div>child</div>'
  20. })
  21. Vue.component('child-one',{
  22.   template:'<div>child-one</div>'
  23. })
  24. var vm = new Vue({
  25.   el:'#app',
  26.   data:{
  27.     show:true
  28.   },
  29.   methods:{
  30.     handleClick:function(){
  31.       this.show = !this.show;
  32.     }
  33.   }
  34. })
  35. </script>
这个就是多个组件的过渡,采用的是上面的方式,替换子组件,那么我们换一种方式,用动态组件
  1. <style>
  2.   .v-enter, .v-leave-to {
  3.     opacity: 0;
  4.   }
  5.   .v-enter-acitve, .v-leave-active {
  6.     transition: opacity 1s;
  7.   }
  8. </style>
  9. <div id='app'>
  10.   <transition mode='out-in'>
  11.     <component :is='type'></component>
  12.   </transition>
  13.   <button @click='handleClick'>切换</button>
  14. </div>
  15.  
  16. <script>
  17. Vue.component('child',{
  18.   template:'<div>child</div>'
  19. })
  20. Vue.component('child-one',{
  21.   template:'<div>child-one</div>'
  22. })
  23. var vm = new Vue({
  24.   el:'#app',
  25.   data:{
  26.     type:'child'
  27.   },
  28.   methods:{
  29.     handleClick:function(){
  30.       this.type = (this.type === 'child' ? 'child-one' : 'child')
  31.     }
  32.   }
  33. })
  34. </script>
这样也实现了多个组件的过渡效果

vue中多个元素或多个组件之间的动画效果的更多相关文章

  1. vue实现多个元素或多个组件之间动画效果

    多个元素的过渡 <style> .v-enter,.v-leave-to{ opacity: 0; } .v-enter-acitve,.v-leave-active{ opacity: ...

  2. 基于vue2.0打造移动商城页面实践 vue实现商城购物车功能 基于Vue、Vuex、Vue-router实现的购物商城(原生切换动画)效果

    基于vue2.0打造移动商城页面实践 地址:https://www.jianshu.com/p/2129bc4d40e9 vue实现商城购物车功能 地址:http://www.jb51.net/art ...

  3. Vue中获取dom元素

    Vue.js虽然说是数据驱动页面的,但是有时候我们也要获取dom对象进行一些操作. vue的不同版本获取dom对象的方法不一样 Vue.js  1.0版本中,通过v-el绑定,然后通过this.els ...

  4. 在vue中操作dom元素

    在vue中可以通过给标签加ref属性,就可以在js中利用ref去引用它,从而达到操作该dom元素,以下是个参考例子 1 <template> 2 <div> 3 <div ...

  5. Vue 中使用 extent 开发loading等全局 组件

    Vue 中使用 extend 开发组件 简介:再开发过程中那面会遇到自定义 loading alert 等全局组件,这里我们可以使用 vue 中的extend 来帮助我们完成 一个简单extend例子 ...

  6. Vue 爬坑之路(二)—— 组件之间的数据传递

    Vue 的组件作用域都是孤立的,不允许在子组件的模板内直接引用父组件的数据.必须使用特定的方法才能实现组件之间的数据传递. 首先用 vue-cli 创建一个项目,其中 App.vue 是父组件,com ...

  7. (转)Vue 爬坑之路(二)—— 组件之间的数据传递

    Vue 的组件作用域都是孤立的,不允许在子组件的模板内直接引用父组件的数据.必须使用特定的方法才能实现组件之间的数据传递. 首先用 vue-cli 创建一个项目,其中 App.vue 是父组件,com ...

  8. Vue(基础四)_总结五种父子组件之间的通信方式

    一.前言 这篇文章主要总结了几种通信方式: 1.方式一:使用props: [ ]和$emit()  (适用于单层通信) 2.方式二:$attrs和$listeners(适用于多层) 3.方式三:中央处 ...

  9. Vue 编程之路(一)——父子组件之间的数据传递

    最近公司的一个项目中使用 Vue 2.0 + element UI 实现一个后台管理系统的前端部分,属于商城类型.其中部分页面是数据管理页,所以有很多可以复用的表格,故引入自定义组件.在这里分享一下开 ...

随机推荐

  1. HDFS配额查询

    ### 查看目录配额 hdfs dfs -count -q -h /user/hive/warehouse/db_name.db ### 查看整个HDFS的空间大小 hdfs dfs -df -h / ...

  2. esper(4-2)-Category Context

    语法: create context context_name group [by] group_expression as category_label [, group [by] group_ex ...

  3. c语言中有关0和1的运算问题

    /*有关0和1 的总结 最近做题总是混淆0 和 1 对于/ 和 %运算时候的结果怎么算 所以就上机试验了一番 结论: c语言中,0/任何数都为0 0%任何数都为0 1/任何数都为0 1%任何数都余1 ...

  4. oracle数据库的备份与还原

    转自:https://www.cnblogs.com/ylldbk/p/5613365.html 数据导出: 1 将数据库TEST完全导出,用户名system 密码manager 导出到D:\daoc ...

  5. SQL事务的四种隔离级别

    1未提交读(Read uncommitted):完全不锁表,所以会出现脏数据.2提交读(Read committed):1.事务1中update才锁表,可以select到最新数据. 事务2select ...

  6. 牛客网Java刷题知识点之File对象常用功能:获取文件名称、获取文件路径、获取文件大小、获取文件修改时间、创建与删除、判断、重命名、查看系统根目录、容量获取、获取某个目录下内容、过滤器

    不多说,直接上干货! 获取文件名称.获取文件路径.获取文件大小.获取文件修改时间 FileMethodDemo.java package zhouls.bigdata.DataFeatureSelec ...

  7. SQL命令行操作

    命令行操作(mysql.exe)    0.登录  :       mysql -u root -p    1.显示数据库列表:    show databases;     2.选择数据库:     ...

  8. PHP编码的规范性

         为了提高工作效率,保证开发的有效性和合理性,并最大程度提高程序代码的可读性和可重复利用性,提高沟通效率,需要一份代码编辑规范.         一.文件标记:            1.所有 ...

  9. HDU 4359——Easy Tree DP?——————【dp+组合计数】

    Easy Tree DP? Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)To ...

  10. statfs获得硬盘使用情况 模拟linux命令 df

    转自:http://blog.csdn.net/mociml/article/details/5335474 先说statfs结构:#include <sys/vfs.h>    /* 或 ...