看一下这次我们想要实现的效果:
小伙伴们可以点击这个预览链接,亲手试试吧。
(如果发现了啥BUG,还请麻烦悄悄的评论告诉我。)
看过效果之后我们再确认一下我们要实现的几个功能
- 点击“开始抽奖”,在名单中随机抽取一位中奖人,并有闪烁切换的滚动效果。
- 点击“再抽一次”,会开启新一轮的抽奖,并且不包含上一轮抽中的中奖人。
- 全部人员都抽取完后,可以点击“重新开始”开启新一轮的抽奖,会重新将全部名单加载进来。
那么,我们提炼一下几个重点
- 人员名单,如何存放人员名单;
- 随机,如何实现随机抽取;
- 切换,如何实现在候选人之间闪烁切换;
- 如何实现开始切换,以及停止切换(抽中候选人);
- 不包含,如何排除上一轮已中奖名单;
如何存放人员名单:
- 使用中继器,在页面加载时,添加一个动作添加行。
如何实现随机抽取
- 给每个人员一个随机编码,然后进行排序,候选人的排序就被打乱了,就可以做到随机的效果。
如何实现闪烁切换
- 中继器设置分页,一页仅显示一行信息,那么只要实现一定时间后翻到下一页就可以实现切换了。
- 那么怎么实现循环切换呢?因为一般情况下页面翻到最后一页,就会停止了。那么我们就要在它翻到最后一页的时候再添加一个动作,就是跳到第一页,这样就可以从第一页开始继续往后翻页了。
如何实现开始抽奖和停止抽奖
- 翻译过来就是,怎么让中继器不停翻页,并在想要的时候停下。
那么我们就要设置一个全局变量,我给它命名为 StopOrStart,它将会有两种赋值就是start和stop。 - 当这个值不等于stop的时候,中继器就一直翻页。那就要考虑什么动作能一直出发翻页。这个仿佛是一个公式一样,基本就是当状态改变,当文本改变时。正好我们中继器里需要有姓名、手机号,这两样就可以用文本框,文本框就有当文本改变时的交互。另外这里很好的一个点是不同的人可能有相同的姓名,但手机号肯定不一样。所以我们在对显示手机号的文本框上添加文本改变时的交互。翻译一下就是,当显示手机号的文本框改变时,只要全局变量StopOrStart不等于Stop,就不断地翻页。
-
那么让它停下来就简单了,就是让全局变量在你需要的时候让它变成是Stop就好了。我在这个原型中设置了过三秒全局变量等于Stop,那么也可以是当点击某个按钮的时候全局变量等于Stop,翻页就停止了,那么当前页就算是抽中的人选了。
-
那么翻页停止后,又如何启动抽奖呢?只要触发某个动作时让中继器开始翻到下一页,文本框改变了,就又会触发不停翻页了。
如何在下一轮抽奖的时候排除之前的中奖人员
- 再下一次抽奖之前,将当前页面的人员删除。此时手机号码的唯一性又派上用场了,删除中继器中手机号码等于当前文本框中的文本信息的行即可。
以上就是本原型的核心逻辑啦,需要下载原型的小伙伴可以点击这个预览链接查看下载链接。
网友评论