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 闭包
Sep 15 Javascript
当鼠标滑过文本框自动选中输入框内容的JS代码分享
Nov 26 Javascript
jquery插件lazyload.js延迟加载图片的使用方法
Feb 19 Javascript
使用PBFunc在Powerbuilder中支付宝当面付款功能
Oct 01 Javascript
第一次接触神奇的Bootstrap
Oct 14 Javascript
jquery中用jsonp实现搜索框功能
Oct 18 Javascript
vue双向绑定简要分析
Mar 23 Javascript
详解Angular 4 表单快速入门
Jun 05 Javascript
vue实现可视化可拖放的自定义表单的示例代码
Mar 20 Javascript
JS实现判断数组是否包含某个元素示例
May 24 Javascript
基于Layui自定义模块的使用方法详解
Sep 14 Javascript
vue动态禁用控件绑定disable的例子
Oct 28 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 nl2br函数 将换行字符转成 &amp;lt;br&amp;gt;
2009/08/21 PHP
php判断上传的Excel文件中是否有图片及PHPExcel库认识
2013/01/11 PHP
分享PHP守护进程类
2015/12/30 PHP
ThinkPHP模板循环输出Volist标签用法实例详解
2016/03/23 PHP
php字符集转换
2017/01/23 PHP
php正则提取html图片(img)src地址与任意属性的方法
2017/02/08 PHP
Yii2框架实现数据库常用操作总结
2017/02/08 PHP
php简单随机字符串生成方法示例
2017/04/19 PHP
使用npm发布Node.JS程序包教程
2015/03/02 Javascript
jquery+json实现动态商品内容展示的方法
2016/01/14 Javascript
详细谈谈AngularJS的子级作用域问题
2016/09/05 Javascript
node.js基于mongodb的搜索分页示例
2017/01/22 Javascript
vue.js中Vue-router 2.0基础实践教程
2017/05/08 Javascript
jQuery动态添加.active 实现导航效果代码思路详解
2017/08/29 jQuery
仿淘宝JSsearch搜索下拉深度用法
2018/01/15 Javascript
vue.js使用v-if实现显示与隐藏功能示例
2018/07/06 Javascript
jQuery AJAX 方法success()后台传来的4种数据详解
2018/08/08 jQuery
echarts实现晶体球面投影的实例教程
2020/10/10 Javascript
基于elementUI竖向表格、和并列的案例
2020/10/26 Javascript
微信小程序实现可长按移动控件
2020/11/01 Javascript
[39:02]DOTA2亚洲邀请赛 3.31 小组赛 B组 Mineski vs VGJ.T
2018/04/01 DOTA
Tensorflow加载预训练模型和保存模型的实例
2018/07/27 Python
wxPython实现分隔窗口
2019/11/19 Python
python 解决Fatal error in launcher:错误问题
2020/05/21 Python
Python HTMLTestRunner测试报告view按钮失效解决方案
2020/05/25 Python
浅谈numpy中np.array()与np.asarray的区别以及.tolist
2020/06/03 Python
python能在浏览器能运行吗
2020/06/17 Python
python3.6中anaconda安装sklearn踩坑实录
2020/07/28 Python
详解如何在pyqt中通过OpenCV实现对窗口的透视变换
2020/09/20 Python
玩具反斗城西班牙网上商城:ToysRUs西班牙
2017/01/19 全球购物
Java平台和其他软件平台有什么不同
2015/06/05 面试题
护理学中专毕业生求职信
2013/11/11 职场文书
投资合作协议书
2014/04/17 职场文书
2015年学生管理工作总结
2015/05/26 职场文书
小学英语教学经验交流材料
2015/11/02 职场文书
MySQL系列之十 MySQL事务隔离实现并发控制
2021/07/02 MySQL