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使用动态渲染表单功能完成ajax文件下载
Jan 15 Javascript
JS打印gridview实现原理及代码
Feb 05 Javascript
js判断背景图片是否加载成功使用img的width实现
May 29 Javascript
含有CKEditor的表单如何提交
Jan 09 Javascript
Vue.js 递归组件实现树形菜单(实例分享)
Dec 21 Javascript
JavaScript数组和对象的复制
Mar 21 Javascript
jQuery选择器特殊字符与属性空格问题
Aug 14 jQuery
vue项目实现表单登录页保存账号和密码到cookie功能
Aug 31 Javascript
JavaScript解析机制与闭包原理实例详解
Mar 08 Javascript
vue父子组件的通信方法(实例详解)
Nov 10 Javascript
javascript的delete运算符知识点总结
Nov 19 Javascript
js实现适配移动端的拖动效果
Jan 13 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
杏林同学录(三)
2006/10/09 PHP
基于session_unset与session_destroy的区别详解
2013/06/03 PHP
ThinkPHP学习笔记(一)ThinkPHP部署
2014/06/22 PHP
PHP数据的提交与过滤基本操作实例详解
2016/11/11 PHP
PHP7扩展开发教程之Hello World实现方法示例
2017/08/03 PHP
laravel5.4利用163邮箱发送邮件的步骤详解
2017/09/22 PHP
PHP-X系列教程之内置函数的使用示例
2017/10/16 PHP
php使用curl获取header检测开启GZip压缩的方法
2018/08/15 PHP
javascript:history.go()和History.back()的区别及应用
2012/11/25 Javascript
jQuery取消ajax请求的方法
2015/06/09 Javascript
JS使用cookie实现DIV提示框只显示一次的方法
2015/11/05 Javascript
JavaScript设置、获取、清除单值和多值cookie的方法
2015/11/17 Javascript
学习javascript面向对象 javascript实现继承的方式
2016/01/04 Javascript
jQuery日历插件datepicker用法详解
2016/03/03 Javascript
js实现页面跳转的几种方法小结
2016/05/16 Javascript
JavaScript兼容浏览器FF/IE技巧
2016/08/14 Javascript
关于ES6的六个小特性(二)
2017/02/20 Javascript
vue实现app页面切换动画效果实例
2017/05/23 Javascript
vue元素实现动画过渡效果
2017/07/01 Javascript
基于node.js express mvc轻量级框架实践
2017/09/14 Javascript
JavaScript时间戳与时间日期间相互转换
2017/12/11 Javascript
详解python string类型 bytes类型 bytearray类型
2017/12/16 Python
python实现将字符串中的数字提取出来然后求和
2020/04/02 Python
Python HTMLTestRunner可视化报告实现过程解析
2020/04/10 Python
Python新手如何进行闭包时绑定变量操作
2020/05/29 Python
css3制作彩色边线3d立体按钮的示例(css3按钮)
2014/05/06 HTML / CSS
查找廉价航班和发现新目的地:Kiwi.com
2019/02/25 全球购物
Wedgwood英国官方网站:英式精致骨瓷餐具、礼品与生活精品,源于1759年
2019/09/02 全球购物
业务经理的岗位职责
2013/11/16 职场文书
最新结婚典礼主持词
2014/03/14 职场文书
借款协议书范本
2014/04/22 职场文书
初中新生军训方案
2014/05/13 职场文书
安全标语大全
2014/06/10 职场文书
个人对照检查材料思想汇报
2014/09/26 职场文书
2019毕业典礼主持词!
2019/07/05 职场文书
晶体管来复再生式二管收音机
2021/04/22 无线电