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 相关文章推荐
jQuery为iframe的body添加click事件的实现代码
Apr 07 Javascript
15条JavaScript最佳实践小结
Aug 09 Javascript
JS关闭窗口与JS关闭页面的几种方法小结
Dec 17 Javascript
jQuery中delegate和on的用法与区别详细解析
Jan 26 Javascript
用js提交表单解决一个页面有多个提交按钮的问题
Sep 01 Javascript
基于jQuery实现复选框的全选 全不选 反选功能
Nov 24 Javascript
JavaScript实现twitter puddles算法实例
Dec 06 Javascript
实例详解JSON数据格式及json格式数据域字符串相互转换
Jan 07 Javascript
Bootstrap Table从零开始
Jun 30 Javascript
jquery中为什么能用$操作
Jun 18 jQuery
js利用递归与promise 按顺序请求数据的方法
Aug 30 Javascript
谈谈JavaScript令人迷惑的==与+
Aug 31 Javascript
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
PHP4在WinXP下IIS和Apache2服务器上的安装实例
2006/10/09 PHP
php阻止页面后退的方法分享
2014/02/17 PHP
php去掉文件前几行的方法
2015/07/29 PHP
thinkphp3.2.3 分页代码分享
2016/07/28 PHP
PHP对称加密算法(DES/AES)类的实现代码
2017/11/14 PHP
js获取当前日期代码适用于网页头部
2013/06/27 Javascript
JS 打印界面的CSS居中代码适用所有浏览器
2014/03/19 Javascript
js打开windows上的可执行文件示例
2014/05/27 Javascript
ZeroClipboard插件实现多浏览器复制功能(支持firefox、chrome、ie6)
2014/08/30 Javascript
JS实现可调整倒计时间代码分享
2015/08/18 Javascript
基于JavaScript判断浏览器到底是关闭还是刷新(超准确)
2016/02/01 Javascript
javascript 动态样式添加的简单实现
2016/10/11 Javascript
微信小程序Server端环境配置详解(SSL, Nginx HTTPS,TLS 1.2 升级)
2017/01/12 Javascript
js控制随机数生成概率代码实例
2019/03/21 Javascript
ES7之Async/await的使用详解
2019/03/28 Javascript
jQuery实现轮播图效果
2019/11/26 jQuery
举例讲解Python面相对象编程中对象的属性与类的方法
2016/01/19 Python
Python3 导入上级目录中的模块实例
2019/02/16 Python
Python统计一个字符串中每个字符出现了多少次的方法【字符串转换为列表再统计】
2019/05/05 Python
使用Python做垃圾分类的原理及实例代码附源码
2019/07/02 Python
Python统计分析模块statistics用法示例
2019/09/06 Python
利用Python校准本地时间的方法教程
2019/10/31 Python
利用Python脚本实现自动刷网课
2020/02/03 Python
python操作docx写入内容,并控制文本的字体颜色
2020/02/13 Python
Python super()方法原理详解
2020/03/31 Python
opencv之颜色过滤只留下图片中的红色区域操作
2020/06/05 Python
Python3爬虫发送请求的知识点实例
2020/07/30 Python
美国本地交易和折扣网站:LocalFlavor.com
2017/10/26 全球购物
东方通信股份有限公司VC面试题
2014/08/27 面试题
公司员工活动策划方案
2014/08/20 职场文书
大学生档案自我鉴定(2篇)
2014/10/14 职场文书
2014年保密工作总结
2014/11/22 职场文书
2015年高二班主任工作总结
2015/05/25 职场文书
2015-2016年小学教导工作总结
2015/07/21 职场文书
2016三八妇女节校园广播稿
2015/12/17 职场文书
Go Gin实现文件上传下载的示例代码
2021/04/02 Golang