vue如何进行动画的封装


Posted in Javascript onSeptember 26, 2018

本文实例为大家分享了vue动画封装的具体代码,供大家参考,具体内容如下

<style>
.v-enter,.v-leave-to{


opacity: 0;

}

.v-enter-active,.v-leave-active{


transition:opacity 1s;

}
</style>


<div id='app'>

<transition>


<div v-if='show'>hello 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>

有时候这种渐隐渐现的效果用的比较多,要复用,需要封装一下,怎么封装呢

<style>
.v-enter,.v-leave-to{


opacity: 0;

}

.v-enter-active,.v-leave-active{


transition:opacity 1s;

}
</style>


<div id='app'>

<fade :show='show'>


<div>hello world</div>

</fade>

<fade :show='show'>


<h1>hello world</h1>

</fade>

<button @click='handleClick'>切换</button>
</div>

<script>
Vue.component('fade',{

props:['show'],

template: `


<transition>



<slot v-if='show'></slot>


</transition>

`
})
var vm = new Vue({

el:'#app',

data:{


show:false

},

methods:{


handleClick:function(){



this.show = !this.show;


}

}
})
</script>

可以这样封装,将dom元素传入slot,除了这样,还可以样式一起封装进去

<div id='app'>
<fade :show='show'>


<div>hello world</div>

</fade>

<fade :show='show'>


<h1>hello world</h1>

</fade>

<button @click='handleClick'>切换</button>
</div>

<script>
Vue.component('fade',{

props:['show'],

template: `


<transition @before-enter='handleBeforeEnter' @enter='handleEnter'>



<slot v-if='show'></slot>


</transition>

`,

methods:{


handleBeforeEnter:function(el){



el.style.color='red'


},


handleEnter:function(el,done){



setTimeout(()=>{




el.style.color='green';




done();



},2000)


}

}
})
var vm = new Vue({

el:'#app',

data:{


show:false

},

methods:{


handleClick:function(){



this.show = !this.show;


}

}
})
</script>

把样式一起封装进来,是比较推荐的方式。

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

Javascript 相关文章推荐
用JavaScript脚本实现Web页面信息交互
Dec 21 Javascript
js实现的二分查找算法实例
Jan 21 Javascript
AngularJs 60分钟入门基础教程
Apr 03 Javascript
基于JS实现导航条之调用网页助手小精灵的方法
Jun 17 Javascript
微信小程序 使用picker封装省市区三级联动实例代码
Oct 28 Javascript
bootstrap导航条实现代码
Dec 28 Javascript
vue父组件中获取子组件中的数据(实例讲解)
Sep 27 Javascript
微信小程序车牌号码模拟键盘输入功能的实现代码
Nov 11 Javascript
Node.js之readline模块的使用详解
Mar 25 Javascript
JS Web Flex弹性盒子模型代码实例
Mar 10 Javascript
详解vue-template-admin三级路由无法缓存的解决方案
Mar 10 Javascript
基于JavaScript实现表格隔行换色
May 08 Javascript
vue使用rem实现 移动端屏幕适配
Sep 26 #Javascript
ExtJs使用自定义插件动态保存表头配置(隐藏或显示)
Sep 25 #Javascript
解决IE11 vue +webpack 项目中数据更新后页面没有刷新的问题
Sep 25 #Javascript
vue单页缓存方案分析及实现
Sep 25 #Javascript
Vue中对拿到的数据进行A-Z排序的实例
Sep 25 #Javascript
vue单页缓存存在的问题及解决方案(小结)
Sep 25 #Javascript
深入理解与使用keep-alive(配合router-view缓存整个路由页面)
Sep 25 #Javascript
You might like
星际争霸任务指南——人族
2020/03/04 星际争霸
分享最受欢迎的5款PHP框架
2014/11/27 PHP
开启PHP Static 关键字之旅模式
2015/11/13 PHP
PHP正则+Snoopy抓取框架实现的抓取淘宝店信誉功能实例
2017/05/17 PHP
使用PHP访问RabbitMQ消息队列的方法示例
2018/06/06 PHP
Javascript中eval函数的使用方法与示例
2007/04/09 Javascript
JS编程小常识很有用
2012/11/26 Javascript
asp.net中System.Timers.Timer的使用方法
2013/03/20 Javascript
Jquery实现视频播放页面的关灯开灯效果
2013/05/27 Javascript
JS模拟简易滚动条效果代码(附demo源码)
2016/04/05 Javascript
关于JS中setTimeout()无法调用带参函数问题的解决方法
2016/06/21 Javascript
js 声明数组和向数组中添加对象变量的简单实例
2016/07/28 Javascript
jQuery自定义插件详解及实例代码
2016/12/29 Javascript
ES6中箭头函数的定义与调用方式详解
2017/06/02 Javascript
Angular实现的简单定时器功能示例
2017/12/28 Javascript
Vue render渲染时间戳转时间,时间转时间戳及渲染进度条效果
2018/07/27 Javascript
Vue2.x通用条件搜索组件的封装及应用详解
2019/05/28 Javascript
KnockoutJS数组比较算法实例详解
2019/11/25 Javascript
Vue+Vant 图片上传加显示的案例
2020/11/03 Javascript
Vue 数据响应式相关总结
2021/01/28 Vue.js
pygame学习笔记(5):游戏精灵
2015/04/15 Python
Python中random模块用法实例分析
2015/05/19 Python
使用Python写CUDA程序的方法
2017/03/27 Python
Python 获得13位unix时间戳的方法
2017/10/20 Python
python2.7安装图文教程
2018/03/13 Python
Python threading模块condition原理及运行流程详解
2020/10/05 Python
迪卡侬印度官网:购买所有体育用品
2017/06/24 全球购物
伦敦剧院门票:From The Box Office
2018/06/30 全球购物
Nordgreen台湾官网:极简北欧设计手表
2019/08/21 全球购物
总经理的岗位职责
2014/02/23 职场文书
安徽导游词
2015/02/12 职场文书
幼儿园教师师德表现自我评价
2015/03/05 职场文书
七夕情人节问候语
2015/11/11 职场文书
廉洁自律承诺书2016
2016/03/25 职场文书
导游词之广东佛山(南风古灶)
2019/09/24 职场文书
详解Mysql事务并发(脏读、不可重复读、幻读)
2022/04/29 MySQL