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 相关文章推荐
IE浏览器兼容Firefox的JS脚本的代码
Oct 23 Javascript
js event事件的传递与冒泡处理
Dec 06 Javascript
JavaScript 验证码的实例代码(附效果图)
Mar 22 Javascript
JavaScript中的类数组对象介绍
Dec 30 Javascript
JavaScript实现文字跟随鼠标特效
Aug 06 Javascript
网页前端登录js按Enter回车键实现登陆的两种方法
May 10 Javascript
jQuery实现背景滑动菜单
Dec 02 Javascript
原生JS仿QQ阅读点击展开、收起效果
Mar 08 Javascript
javascript 中的继承实例详解
May 05 Javascript
微信小程序实现星级评分和展示
Jul 05 Javascript
vue将毫秒数转化为正常日期格式的实例
Sep 16 Javascript
js正则匹配多个全部数据问题
Dec 20 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 事务处理数据实现代码
2010/05/13 PHP
thinkPHP和onethink微信支付插件分享
2019/08/11 PHP
利用google提供的API(JavaScript接口)获取网站访问者IP地理位置的代码详解
2010/07/24 Javascript
jquery怎样实现ajax联动框(二)
2013/03/08 Javascript
JS去除右边逗号的简单方法
2013/07/03 Javascript
js中方法重载如何实现?以及函数的参数问题
2013/08/01 Javascript
jquery统计复选框选中示例
2013/11/05 Javascript
js动态调用css属性的小规律及实例说明
2013/12/28 Javascript
JQuery对表单元素的基本操作使用总结
2014/07/18 Javascript
JS+CSS实现的竖向简洁折叠菜单效果代码
2015/10/22 Javascript
Node.js 条形码识别程序构建思路详解
2016/02/14 Javascript
js改变css样式的三种方法推荐
2016/06/28 Javascript
JS正则替换掉小括号及内容的方法
2016/11/29 Javascript
鼠标经过出现气泡框的简单实例
2017/03/17 Javascript
Vuejs实现带样式的单文件组件新方法
2017/05/02 Javascript
Node.js 回调函数实例详解
2017/07/06 Javascript
浅谈Vue.js中的v-on(事件处理)
2017/09/05 Javascript
详解vue组件基础
2018/05/04 Javascript
vue头部导航动态点击处理方法
2018/11/02 Javascript
nodejs基础之多进程实例详解
2018/12/27 NodeJs
如何能分清npm cnpm npx nvm
2019/01/17 Javascript
Vue解析剪切板图片并实现发送功能
2020/02/04 Javascript
vue实现户籍管理系统
2020/05/29 Javascript
浅谈python配置与使用OpenCV踩的一些坑
2018/04/02 Python
pycharm 取消默认的右击运行unittest的方法
2018/11/29 Python
Python 运行 shell 获取输出结果的实例
2019/01/07 Python
python求最大值最小值方法总结
2019/06/25 Python
Django实现将一个字典传到前端显示出来
2020/04/03 Python
浅析Python requests 模块
2020/10/09 Python
德国专业木制品经销商:Holz-Direkt24
2019/12/26 全球购物
厨师岗位职责
2013/11/12 职场文书
婚育证明格式
2015/06/17 职场文书
欠款证明
2015/06/24 职场文书
党员干部学习心得体会
2016/01/23 职场文书
职场干货:简历中的自我评价应该这样写!
2019/05/06 职场文书
Python tensorflow卷积神经Inception V3网络结构
2022/05/06 Python