手机版

mpvue小程序循环动画开启暂停的实现方法

时间:2021-08-24 来源:互联网 编辑:宝哥软件园 浏览:

用小程序的动画属性实现循环动画的开启与暂停,并封装到组件。

实现一个字体图标组件的循环旋转动画开启/暂停

用于点击图标,字体颜色变换,开始循环旋转动画,并刷新内容刷新结束,停止动画,并设置字体颜色为原来的主要利用setInterval定时器循环执行动画首先,组件写出来

添加点击事件,动画属性,风格属性(用来动态修改样式)

src/components/refresh.vue

模板div class='图标字体icon-shua Xin ' :动画=' refreshA ' @ click=' refresh ' :样式=' style '/div/div/模板设置初始数据

使用一个布尔数据提神的判断动画的状态为开启真实/暂停错误的

脚本导出默认值{ data(){ return { refresha : null,style: ' color: # eee ',//用来设置存储旋转的度数rotate: 0,//存储定时器id refreshI: null } },prop :['刷新]}/脚本添加点击事件函数

脚本导出默认{ methods : }//刷新按钮点击refresh () { //正在刷新则跳出,避免在循环动画执行时,再次出发点击刷新事件如果(这个。刷新)返回/否则提交刷新事件这个$emit('refresh') },//刷新动画结束refreshend () { //当动画结束,字体颜色恢复原来this . style=' color : # eee ' } } }/脚本监听提神的状态

脚本导出默认值{ watch : {刷新(newV,oldV) { //没有正在刷新正在刷新设置循环动画if (newV!{这个。style=' color : # fff'这个。refreshi=setInterval(()={//每次360 实现每300 毫秒旋转360 度旋转=360让动画=wx。创建动画()动画。rotatez(这个。旋转).这一步。refresha=动画。export()},300) return } //从正在刷新刷新完成清空循环定时器动画if(!newV oldV){ clearInterval(这个。刷新)这个。refresha=null } } } } }/script需要注意的是定时器时间必须和动画的过渡时间设置为相同

组件调用

src/pages/index/index.vue

模板div Refresh @ Refresh=' Refresh ' : Refresh=' Refresh '//div/template script从' @/components/Refresh '导入Refresh导出默认{ data : }//初始状态肯定为假的,点击刷新组件后,在事件函数中再设置为true refreshing: false },components: { Refresh },methods : { async Refresh(){ this。Refresh=true//这里为一个异步请求API让数据=等待API。GetDATa()//请求完成,执行想要操作的代码后,设置动画为false//这个。数据=数据这个。refresh=false } }/脚本样式lang="手写笔"作用域/stylerefresh组件完整代码

template div class=' icon font icon-shua Xin ' : animation=' refreshA ' @ click=' refresh ' : style=' style '/div/div/template script导出默认{ data(){ return { refreshA 3360 null,style: ' color: # eee ',rotatee : 0 0,refreshI: null } },prop :['刷新],watch: {刷新(newV,oldV) { if (newV!{这个。style=' color : # fff'这个。refreshi=设置间隔(()={ this。旋转=360让动画=wx。创建动画()。动画。rotatez(这个。旋转).这一步。refresha=动画。export()},300) return } if(!newV oldV){ clearInterval(这个。刷新)这个。refresha=null } },方法: { refresh(){ if(this。刷新)返回这个$emit('refresh') },refresh end(){ this。style=' color : # eee'} }}/scriptstyle lang="手写笔"作用域/style效果

正常效果,看图中右上角

网速太快

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

版权声明:mpvue小程序循环动画开启暂停的实现方法是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。