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 相关文章推荐
JS 对输入框进行限制(常用的都有)
Jul 30 Javascript
jquery实现图片渐变切换兼容ie6/Chrome/Firefox
Aug 02 Javascript
jquery实现邮箱自动补全功能示例分享
Feb 17 Javascript
Express的路由详解
Dec 10 Javascript
AngularJS自定义控件实例详解
Dec 13 Javascript
如何编写jquery插件
Mar 29 jQuery
详解angular 中的自定义指令之详解API
Jun 20 Javascript
使用js获取伪元素的content实例
Oct 24 Javascript
VueJs组件之父子通讯的方式
May 06 Javascript
基于node简单实现RSA加解密的方法步骤
Mar 21 Javascript
vue动态绘制四分之三圆环图效果
Sep 03 Javascript
JS实现数据动态渲染的竖向步骤条
Jun 24 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
基于qmail的完整WEBMAIL解决方案安装详解
2006/10/09 PHP
PHP获取MAC地址的函数代码
2011/09/11 PHP
几个实用的PHP内置函数使用指南
2014/11/27 PHP
PHPExcel内存泄漏问题解决方法
2015/01/23 PHP
thinkPHP订单数字提醒功能的实现方法
2016/12/01 PHP
JS DOM 操作实现代码
2010/08/01 Javascript
javascript之bind使用介绍
2011/10/09 Javascript
浅谈javascript中的作用域
2012/04/07 Javascript
EasyUI 中 MenuButton 的使用方法
2012/07/14 Javascript
纯js实现瀑布流展现照片(自动适应窗口大小)
2013/04/08 Javascript
IE8的JavaScript点击事件(onclick)不兼容的解决方法
2013/11/22 Javascript
text-align:justify实现文本两端对齐 兼容IE
2015/08/19 Javascript
js下将金额数字每三位一逗号分隔
2016/02/19 Javascript
原生js实现百叶窗效果及原理介绍
2016/04/12 Javascript
jQuery移动端日期(datedropper)和时间(timedropper)选择器附源码下载
2016/04/19 Javascript
JS 通过系统时间限定动态添加 select option的实例代码
2016/06/09 Javascript
Bootstrap轮播插件使用代码
2016/10/11 Javascript
jquery 仿锚点跳转到页面指定位置的实例
2017/02/14 Javascript
js仿淘宝商品放大预览功能
2017/03/15 Javascript
JavaScript瀑布流布局实现代码
2017/05/06 Javascript
js与jquery获取input输入框中的值实例讲解
2020/02/27 jQuery
angular8.5集成TinyMce5的使用和详细配置(推荐)
2020/11/16 Javascript
[14:20]刀塔大凶女神互压各路奇葩屌丝
2014/05/16 DOTA
python+django快速实现文件上传
2016/10/24 Python
python reduce 函数使用详解
2017/12/05 Python
Python FTP两个文件夹间的同步实例代码
2018/05/25 Python
python学习开发mock接口
2019/04/28 Python
python3实现小球转动抽奖小游戏
2020/04/15 Python
浅析Python语言自带的数据结构有哪些
2019/08/27 Python
Django实现随机图形验证码的示例
2020/10/15 Python
CSS3动画animation实现云彩向左滚动
2014/05/09 HTML / CSS
微软香港官网及网上商店:Microsoft HK
2016/09/01 全球购物
我的大学生活演讲稿
2014/04/25 职场文书
人力资源管理求职信
2014/08/07 职场文书
党员批评与自我批评发言
2014/10/02 职场文书
合伙经营协议书范本(通用版)
2014/12/03 职场文书