博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
vue实现多个元素或多个组件之间动画效果
阅读量:6245 次
发布时间:2019-06-22

本文共 2603 字,大约阅读时间需要 8 分钟。

  多个元素的过渡

  
  <style>
  
  .v-enter,.v-leave-to{
  
  opacity: 0;
  
  }
  
  .v-enter-acitve,.v-leave-active{
  
  opacity: opacity 1s;
  
  }
  
  </style>
  
  <div id='app'>
  
  <transition>
  
  <div v-if='show'>hello world</div>
  
  <div v-else>bye world</div>
  
  </transition>
  
  <button @click='handleClick'>切换</button>
  
  </div>
  
  <script>
  
  var vm = new Vue({
  
  el:'#app',
  
  data:{
  
  show:true
  
  },
  
  methods:{
  
  handleClick:function(){
  
  this.show = !this.show;
  
  }
  
  }
  
  })
  
  </script>
  
  //前端全栈学习交流圈:866109386
  
  //面向1-3经验年前端开发人员
  
  //帮助突破技术瓶颈,提升思维能力
  
  按照之前的写法方式,渐隐渐出的效果并没有出现该有的效果,那么为什么呢? 在if else两个元素切换的时候,会尽量的复用dom,正是vue,dom的复用,导致动画的效果不会出现,如果想要vue不去复用dom,之前也说过,怎么做呢,给两个div不同的key值就行了
  
  <div v-if='show' key='hello'>hello world</div>
  
  <div v-else key='bye'>bye world</div>
  
  这样就可以有个明显的动画效果,多个元素过渡动画的效果。
  
  transition还提供了一个mode属性,in-out是先显示再隐藏,out-in是先隐藏再显示
  
  多个组件的过渡
  
  <style>
  
  .v-enter, .v-leave-to {
  
  opacity: 0;
  
  }
  
  .v-enter-acitve, .v-leave-active {
  
  transition: opacity 1s;
  
  }
  
  </style>
  
  <div id='app'>
  
  <transition mode='out-in'>
  
  <child v-if='show'></child>
  
  <child-one v-else></child-one>
  
  </transition>
  
  <button @click='handleClick'>切换</button>
  
  </div>
  
  <script>
  
  Vue.component('child',{
  
  template:'<div>child</div>'
  
  })
  
  Vue.component(www.mingcheng178.com'child-one',{
  
  template:'<div>child-one</div>'
  
  })
  
  var vm = new Vue({
  
  el:'#app',
  
  data:{
  
  show:true
  
  },
  
  methods:{
  
  handleClick:function(www.gcyL157.com){
  
  this.show =www.mhylpt.com !this.show;
  
  }
  
  }
  
  })
  
  </script>
  
  //前端全栈学习交流圈:866109386
  
  //面向1-3经验年前端开发人员
  
  //帮助突破技术瓶颈,提升思维能力
  
  这个就是多个组件的过渡,采用的是上面的方式,替换子组件,那么我们换一种方式,用动态组件
  
  <style>
  
  .v-enter, .v-leave-to {
  
  opacity: 0;
  
  }
  
  .v-enter-acitve,www.gcyl152.com .v-leave-active {
  
  transition: opacity 1s;
  
  }
  
  </style>
  
  <div id=www.feifanyule.cn/'app'>
  
  <transition mode=www.haom178.com'out-in'>
  
  <component :is='type'></component>
  
  </transition>
  
  <button @click='handleClick'>切换</button>
  
  </div>
  
  <script>
  
  Vue.component('child',{
  
  template:'<div>child</div>'
  
  })
  
  Vue.component('child-one',{
  
  template:'<div>child-one</div>'
  
  })
  
  var vm = new Vue({
  
  el:'#app',
  
  data:{
  
  type:'child'
  
  },
  
  methods:{
  
  handleClick:function(){
  
  this.type = (this.type === 'child' ? 'child-one' : 'child')
  
  }
  
  }
  
  })
  
  </script>
  
  这样也实现了多个组件的过渡效果。

转载地址:http://heoia.baihongyu.com/

你可能感兴趣的文章
如何将Drawable转为Bitmap?
查看>>
微信公众平台消息接口开发(4)
查看>>
VB控件间的拖放
查看>>
token 验证的逻辑
查看>>
机器学习算法之概率分类法
查看>>
phone8 in-app purchasing
查看>>
Git 常用命令
查看>>
基于CentOS 5.4搭建nginx+php+spawn-fcgi+mysql高性能php平台
查看>>
Java学习图
查看>>
【C++进阶:STL常见性质3】
查看>>
HDU 1507 Uncle Tom's Inherited Land*
查看>>
\u Unicode和汉字转化
查看>>
javascript易混淆的split()、splice()、slice()方法详解
查看>>
shared_ptr 知识汇总
查看>>
快速排序
查看>>
排版与缩写
查看>>
C#使用xpath查找xml节点信息
查看>>
简单的语句统计所有用户表尺寸大小
查看>>
作业四:个人项目---小学四则运算
查看>>
漂亮的按钮样式-button
查看>>