4.2.3 案例:倒计时获取动态验证码

企业动态

案例描述

单击获取验证码的按钮后,该按钮被禁用,显示倒计时;计时结束后启用按钮,并恢复文本内容为“获取验证码”。

案例难度★★★★☆

案例技术

页面载入时事件、动态面板状态改变时事件、全局变量

案例说明

在用手机号进行账号注册或登录时,为了确保账号安全,一般会发送动态验证码,再次发送的倒计时一般为60s,本案例中为了节约预览效果的时间,只制作倒计时5s

案例思路

利用动态面板可以定时循环切换面板状态的属性,可以把它当成一个计时器,设置成每秒钟改变一次面板状态,在改变状态时,切换显示的倒计时。

制作步骤

不涉及到交互效果的元件就不再赘述了,大家可以自行设计布局。

1)拖入一个“主要按钮”至设计区域,命名为getCode,修改文本为“获取验证码”,如460所示。

 


1.          460

2)设置获取验证码按钮在禁用时的交互样式,如461所示。

①选中getCode,单击属性面板中的“禁用”按钮,打开交互样式设置对话框。

②勾选字体颜色,设置为#FFFFFF

③勾选填充颜色,设置为#CCCCCC


2.          461

3)拖入“动态面板”至设计区域,命名为temp,再添加一个状态。因为动态面板起到计时作用,所以两个状态里均不需要添加任何内容,如462所示。


3.          462

4)新增全局变量用来保存时间,如463所示。

①单击【项目>全局变量】,打开全局变量对话框。

②单击“加号”,新增全局变量。

③把变量命名为seconds


4.          463

5)单击获取验证码按钮,把时间初始化为5s,如464所示。

①选中getCode,双击属性面板中的“鼠标单击时”事件,打开用例编辑器。

②添加“设置变量值”动作。

③在右侧的配置动作区域勾选seconds

④设置变量值为5


5.          464

6)启动计时器,如465所示。

①不要关闭用例编辑器,继续添加 “设置面板状态” 动作。

②在右侧的配置动作区域勾选temp

③选择状态为Next,并勾选“向后循环”,设置并勾选“循环间隔为1000毫秒”,每秒钟切换一次面板状态,相当于计时器。


6.          465

7)禁用获取验证码按钮,如466所示。

①不要关闭用例编辑器,继续添加“禁用”动作。

②在右侧的配置动作区域勾选“当前元件“。


7.          466

8)计时器启动后开始倒计时,如467所示。

①选中temp,双击属性面板中的“状态改变时”事件,打开用例编辑器。

②单击“添加条件”按钮,打开条件设立对话框。

③依次设置条件参数:变量值、seconds>、值、0,然后单击“确定”按钮。

④选择【添加动作>元件>设置文本】。

⑤在右侧的配置动作区域勾选getCode

⑥设置文本值为[[seconds]]s

⑦接下来要把时间减1,继续添加动作“设置变量值”,把seconds的值设置为[[seconds-1]]


8.          467

9)倒计时结束后,恢复按钮文字为“获取验证码”并启用,如468所示。

①选中temp,双击属性面板中的“状态改变时”事件,打开用例编辑器。

②不再添加条件,直接添加“设置文本”动作。

③在右侧的配置动作区域勾选getCode

④设置文本值为“获取验证码”。

⑤继续添加“启用”动作,启用getCode


9.          468

10)完成,按F5键在浏览器中预览效果,如469所示。


10.       469

TIPS

本案例中,在显示时间时用到了“表达式”。可以这样理解:中括号里面可以直接进行数学运算;中括号外面的的内容直接和中括号里面的内容“拼接”。例如,假设当前seconds的值为5,那么[[seconds-1]]显示的内容为4[[seconds-1]]s显示的内容为4s

 

 

 

责任编辑:renliping 来源: 人民邮电出版社
相关推荐

2015-03-23 17:58:04

验证码倒计时并行

2015-01-21 16:07:57

Android源码验证码倒计时

2022-10-21 15:42:21

倒计时鸿蒙

2017-07-20 16:21:52

UICountDownTidelay

2014-03-21 13:46:45

2014-08-18 14:30:27

Android倒计时

2011-04-11 09:17:28

Ubuntu倒计时

2014-02-18 10:36:33

2011-04-11 09:50:56

Ubuntu 11.0

2022-06-14 08:45:27

浏览器IEWindows

2013-10-08 09:24:39

Windows 8.1Windows 8

2020-10-28 17:54:49

成都信息安全

2013-04-09 10:01:18

微软Windows XP

2013-10-10 09:23:15

Android 4.4Kitkat

2019-12-13 19:37:00

BashLinux命令

2023-08-16 11:23:59

2012-05-24 15:41:38

PHP

2012-12-28 13:50:00

2012-03-28 09:37:07

Ubuntu 12.0倒计时

2013-06-06 11:27:52

iRadioWWDC2013
点赞
收藏

51CTO技术栈公众号