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 相关文章推荐
window.location.hash 使用说明
Nov 08 Javascript
JQuery扩展插件Validate 3通过参数设置错误信息
Sep 05 Javascript
JavaScript取得鼠标绝对位置程序代码介绍
Sep 16 Javascript
从数据结构的角度分析 for each in 比 for in 快的多
Jul 07 Javascript
js中匿名函数的创建与调用方法分析
Dec 19 Javascript
第五篇Bootstrap 排版
Jun 21 Javascript
基于Vue2实现的仿手机QQ单页面应用功能(接入聊天机器人 )
Mar 30 Javascript
jQuery Plupload上传插件的使用
Apr 19 jQuery
vue.js打包之后可能会遇到的坑!
Jun 03 Javascript
微信小程序自定义prompt组件步骤详解
Jun 12 Javascript
iview通过Dropdown(下拉菜单)实现的右键菜单
Oct 26 Javascript
vue使用nprogress加载路由进度条的方法
Jun 04 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
php adodb连接不同数据库
2009/03/19 PHP
解析PHP汉字转换拼音的类
2013/06/18 PHP
优化WordPress的Google字体以加速国内服务器上的运行
2015/11/24 PHP
异步javascript的原理和实现技巧介绍
2012/11/08 Javascript
Js,alert出现乱码问题的解决方法
2013/06/19 Javascript
深入理解JavaScript是如何实现继承的
2013/12/12 Javascript
javascript原生和jquery库实现iframe自适应高度和宽度
2014/07/18 Javascript
node.js中的fs.unlink方法使用说明
2014/12/15 Javascript
JavaScript判断页面加载完之后再执行预定函数的技巧
2016/05/17 Javascript
javascript实现任务栏消息提示的简单实例
2016/05/31 Javascript
javaScript 事件绑定、事件冒泡、事件捕获和事件执行顺序整理总结
2016/10/10 Javascript
React Native第三方平台分享的实例(Android,IOS双平台)
2017/08/04 Javascript
shiro授权的实现原理
2017/09/21 Javascript
Vue CL3 配置路径别名详解
2019/05/30 Javascript
[42:25]2018DOTA2亚洲邀请赛 4.5 淘汰赛 LGD vs Liquid 第三场
2018/04/06 DOTA
python遍历 truple list dictionary的几种方法总结
2016/09/11 Python
初探TensorFLow从文件读取图片的四种方式
2018/02/06 Python
详谈python中冒号与逗号的区别
2018/04/18 Python
用Python下载一个网页保存为本地的HTML文件实例
2018/05/21 Python
python 读取文件并把矩阵转成numpy的两种方法
2019/02/12 Python
python通过http下载文件的方法详解
2019/07/26 Python
在pytorch中对非叶节点的变量计算梯度实例
2020/01/10 Python
python opencv实现信用卡的数字识别
2020/01/12 Python
python和JavaScript哪个容易上手
2020/06/23 Python
python使用smtplib模块发送邮件
2020/12/17 Python
HTML5之HTML元素扩展(上)—新增加的元素及使用概述
2013/01/31 HTML / CSS
初中生个人学习的自我评价
2013/12/04 职场文书
给分销商的致歉信
2014/01/14 职场文书
合作经营协议书
2014/04/17 职场文书
公司离职证明样本
2014/09/13 职场文书
2015年结对帮扶工作总结
2015/05/04 职场文书
为什么阅读对所有年龄段的孩子都很重要?
2019/07/08 职场文书
承诺书的签字人,需不需要承担相应的责任?
2019/07/09 职场文书
导游词之日月潭
2019/11/05 职场文书
Python Pandas模块实现数据的统计分析的方法
2021/06/24 Python
MySQL 5.7常见数据类型
2021/07/15 MySQL