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 28 Javascript
Js从头学起(基本数据类型和引用类型的参数传递详细分析)
Feb 16 Javascript
jQuery ui 利用 datepicker插件实现开始日期(minDate)和结束日期(maxDate)
May 22 Javascript
纯javascript移动优先的幻灯片效果
Nov 02 Javascript
JS截取与分割字符串常用技巧总结
Nov 10 Javascript
js时间戳转为日期格式的方法
Dec 28 Javascript
JS获取地址栏参数的两种方法(简单实用)
Jun 14 Javascript
AngularJS ng-style中使用filter
Sep 21 Javascript
BOM之navigator对象和用户代理检测
Feb 10 Javascript
js实现图片上传预览原理分析
Jul 13 Javascript
JS 设计模式之:单例模式定义与实现方法浅析
May 06 Javascript
Openlayers学习之地图比例尺控件
Sep 28 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
php读取EXCEL文件 php excelreader读取excel文件
2012/12/06 PHP
解析php中mysql_connect与mysql_pconncet的区别详解
2013/05/15 PHP
php之XML转数组函数的详解
2013/06/07 PHP
javascript中将Object转换为String函数代码 (json str)
2012/04/29 Javascript
js动态创建表格,删除行列的小例子
2013/07/20 Javascript
如何使用Jquery获取Form表单中被选中的radio值
2013/08/09 Javascript
js点击button按钮跳转到另一个新页面
2014/10/10 Javascript
JQuery实现鼠标移动图片显示描述层的方法
2015/06/25 Javascript
纯JavaScript实现的分页插件实例
2015/07/14 Javascript
js实现精确到秒的日期选择器完整实例
2016/04/30 Javascript
jQuery判断网页是否已经滚动到浏览器底部的实现方法
2017/10/27 jQuery
JavaScript实现淘宝京东6位数字支付密码效果
2018/08/18 Javascript
JS监听滚动和id自动定位滚动
2018/12/18 Javascript
详解如何模拟实现node中的Events模块(通俗易懂版)
2019/04/15 Javascript
浅谈bootstrap layer.open中end的使用方法
2019/09/12 Javascript
JS中this的4种绑定规则详解
2020/02/04 Javascript
微信小程序实现上拉加载功能示例【加载更多数据/触底加载/点击加载更多数据】
2020/05/29 Javascript
前端vue如何使用高德地图
2020/11/05 Javascript
javascript实现倒计时关闭广告
2021/02/09 Javascript
使用Django的模版来配合字符串翻译工作
2015/07/27 Python
python实现汉诺塔递归算法经典案例
2021/03/01 Python
python中MethodType方法介绍与使用示例
2017/08/03 Python
使用python和Django完成博客数据库的迁移方法
2018/01/05 Python
python二进制读写及特殊码同步实现详解
2019/10/11 Python
使用Numpy对特征中的异常值进行替换及条件替换方式
2020/06/08 Python
Keras自动下载的数据集/模型存放位置介绍
2020/06/19 Python
Hotels.com南非:酒店预订
2017/11/02 全球购物
澳大利亚设计的优质鞋类和适合澳大利亚生活方式的服装:Rivers
2019/04/23 全球购物
SK-II神仙水美国官网:SK-II美国
2020/02/25 全球购物
求职教师自荐书
2014/06/19 职场文书
个人融资协议书范本两则
2014/10/15 职场文书
2014年乡镇安全生产工作总结
2014/12/02 职场文书
优秀团员个人总结
2015/02/26 职场文书
王亚平太空授课观后感
2015/06/12 职场文书
浅谈Vue的computed计算属性
2022/03/21 Vue.js
PyTorch device与cuda.device用法
2022/04/03 Python