100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > 【微信小程序|组件库】自定义加载动画(1)

【微信小程序|组件库】自定义加载动画(1)

时间:2018-08-24 17:56:54

相关推荐

【微信小程序|组件库】自定义加载动画(1)

前言

在编写微信小程序的代码时,我们会发现:原生加载动画样式不多,可供我们设置的参数也不多。

通过查询可以得知,若是需要自己定义加载动画,一般的做法就是:在当前页面写加载动画的view代码,通过使用wx:if来控制该动画的显示。

这样做在一定程度上也是可以实现需求,但是如果每个需要过度动画的页面都复写一遍该动画view代码,那么就会显得有点冗余。

下面分享一个自定义加载动画ଘ(੭ˊᵕˋ)੭

需求分析

小程序原生加载动画开放的权限

自定义title:加载时显示的文字提供动画类型的选择:比如加载、完成、失败等,类型较少mask:是否启用蒙层,防止触摸穿透

已实现效果

title支持自定义文字内容支持多行、单行显示中文、英文均不溢出(可修改)溢出多余部分已省略号显示(可修改)文字颜色、大小可以修改动画样式支持自定义动画样式mask模式1:启用蒙层,模糊全局页面,禁止用户操作模式2:启用蒙层,页面显示与正常一致,禁止用户操作模式3:不启用蒙层,允许用户操作动画深色加载框支持选择启用与不启用

效果展示

用法

步骤1

在需要使用加载动画的界面

引入loading组件

假设我们需要在index页面中使用

首先找到index.json

在usingComponents添加

“loading”:"…/…/components/loading/loading"

…/…/components/loading/loading表示的意思是:loading组件的文件位置

示例:

{"usingComponents": {"loading":"../../components/loading/loading"},}

步骤2

在index.wxml页面中添加

<loading title="疯狂敲代码中.." maskFlag='Haihong' loadingFlag='{{loadingFlag}}'/>

步骤3

在index.js中添加变量loadingFlag

初始值为空

data{loadingFlag:'',}

步骤4

需要显示加载动画时

在js对应函数中使用下面代码

k.setData({loadingFlag:true})

取消加载动画

k.setData({loadingFlag:false})

参数说明与自定义样式

对于一个需要使用自定义加载动画的页面

一般步骤就是

在json中引入组件js中添加变量loadingFlag在wxml页面中添加组件代码在js中对loadingFlag进行设置,true或false,用于决定动画的开始与结束

wxml使用的组件代码

<loading title="疯狂敲代码中.." maskFlag='Haihong' loadingFlag='{{loadingFlag}}'/>

参数解释

title:加载动画下方显示的文字

举例:title=“加载中”

<loading title="加载中" maskFlag='Haihong' loadingFlag='{{loadingFlag}}'/>

效果图如下

maskFlag:蒙层

有三种参数选择

Haihong:启用蒙层,模糊全局页面,禁止用户操作HaihongPro:启用蒙层,页面显示与正常一致,禁止用户操作空或除Haihong、HaihongPro之外的其他字符:不启用蒙层,允许用户操作

举例:

情况1:maskFlag=‘Haihong’

<loading title="加载中" maskFlag='Haihong' loadingFlag='{{loadingFlag}}'/>

效果图如下

此时产生了蒙层效果,同时周围界面也模糊了,用户操作被禁止了,只有等待动画结束才可以进行操作

情况2:maskFlag=‘HaihongPro’

<loading title="加载中" maskFlag='HaihongPro' loadingFlag='{{loadingFlag}}'/>

效果图如下

此时产生了蒙层效果,只是视觉上观察页面没有模糊,用户操作同样被禁止了,只有等待动画结束才可以进行操作

情况3:maskFlag=’’

<loading title="加载中" maskFlag='' loadingFlag='{{loadingFlag}}'/>

效果图如下

没有蒙层效果,动画运行时,用户依然可以点击、滑动屏幕

loading组件代码见

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。