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


Posted in Javascript onSeptember 25, 2018

本文实例为大家分享了vue实现多个元素或多个组件之间动画的具体代码,供大家参考,具体内容如下

多个元素的过渡

<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>

按照之前的写法方式,渐隐渐出的效果并没有出现该有的效果,那么为什么呢?

在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('child-one',{

template:'<div>child-one</div>'
})
var vm = new Vue({

el:'#app',

data:{


show:true

},

methods:{


handleClick:function(){



this.show = !this.show;


}

}
})
</script>

这个就是多个组件的过渡,采用的是上面的方式,替换子组件,那么我们换一种方式,用动态组件

<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'>


<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>

这样也实现了多个组件的过渡效果。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
javascript面向对象编程代码
Dec 19 Javascript
如何解决ligerUI布局时Center中的Tab高度大小
Nov 24 Javascript
JavaScript的模块化开发框架Sea.js上手指南
May 12 Javascript
分享JS数组求和与求最大值的方法
Aug 11 Javascript
jacascript DOM节点——元素节点、属性节点、文本节点
Apr 18 Javascript
js图片放大镜实例讲解(必看篇)
Jul 17 Javascript
Vue使用mixins实现压缩图片代码
Mar 14 Javascript
swiper 自动图片无限轮播实现代码
May 21 Javascript
微信小程序实现简单评论功能
Nov 28 Javascript
elementUI中Table表格问题的解决方法
Dec 04 Javascript
使用webpack和rollup打包组件库的方法
Feb 25 Javascript
vue Element-ui表格实现树形结构表格
Jun 07 Vue.js
vue 音乐App QQ音乐搜索列表最新接口跨域设置方法
Sep 25 #Javascript
Vue页面跳转动画效果的实现方法
Sep 23 #Javascript
vue解决弹出蒙层滑动穿透问题的方法
Sep 22 #Javascript
vue如何解决循环引用组件报错的问题
Sep 22 #Javascript
开发一个Parcel-vue脚手架工具(详细步骤)
Sep 22 #Javascript
angular的输入和输出的使用方法
Sep 22 #Javascript
vue构建动态表单的方法示例
Sep 22 #Javascript
You might like
php empty,isset,is_null判断比较(差异与异同)
2010/10/19 PHP
php实现文件下载功能的几个代码分享
2014/05/10 PHP
PHP的serialize序列化数据以及JSON格式化数据分析
2015/10/10 PHP
PHP实现连接设备、通讯和发送命令的方法
2015/10/13 PHP
PHP中加速、缓存扩展的区别和作用详解(eAccelerator、memcached、xcache、APC )
2016/07/09 PHP
thinkPHP模板引擎用法示例
2016/12/08 PHP
php设计模式之策略模式应用案例详解
2019/06/17 PHP
javascript 面向对象编程  function是方法(函数)
2009/09/17 Javascript
Firebug 字幕文件JSON地址获取代码
2009/10/28 Javascript
jquery 双色表格实现代码
2009/12/08 Javascript
jQuery Ajax方法调用 Asp.Net WebService 的详细实例代码
2011/04/27 Javascript
基于jquery实现的鼠标滑过按钮改变背景图片
2011/07/15 Javascript
jQuery统计指定子元素数量的方法
2015/03/17 Javascript
bootstrap-treeview自定义双击事件实现方法
2016/01/09 Javascript
JS中Eval解析JSON字符串的一个小问题
2016/02/21 Javascript
Nodejs Stream 数据流使用手册
2016/04/17 NodeJs
jQuery事件处理的特征(事件命名机制)
2016/08/23 Javascript
Javascript中的作用域及块级作用域
2017/12/08 Javascript
Angularjs实现页面模板清除的方法
2018/07/20 Javascript
sharp.js安装过程中遇到的问题总结
2020/04/02 Javascript
python常用web框架简单性能测试结果分享(包含django、flask、bottle、tornado)
2014/08/25 Python
python爬取个性签名的方法
2018/06/17 Python
python学生信息管理系统(初级版)
2018/10/17 Python
Python高级编程之消息队列(Queue)与进程池(Pool)实例详解
2019/11/01 Python
Python如何批量获取文件夹的大小并保存
2020/03/31 Python
PyTorch 中的傅里叶卷积实现示例
2020/12/11 Python
HTML5离线应用与客户端存储的实现
2018/05/03 HTML / CSS
ProBikeKit澳大利亚:自行车套件,跑步和铁人三项装备
2016/11/30 全球购物
全球性的在线购物网站:Zapals
2017/03/22 全球购物
美国室内盆栽植物购买网站:Plants.com
2020/04/24 全球购物
阳光体育活动方案
2014/02/16 职场文书
纪念九一八事变83周年国旗下讲话稿
2014/09/15 职场文书
闪闪的红星观后感
2015/06/08 职场文书
2016年万圣节活动总结
2016/04/05 职场文书
修改MySQL的默认密码的四种小方法
2021/05/26 MySQL
MySQL数据库事务的四大特性
2022/04/20 MySQL