Axure之旅:高保真生成隨機(jī)驗(yàn)證碼原型制作

躚塵
19 評(píng)論 20058 瀏覽 89 收藏 7 分鐘
🔗 产品经理的职业发展路径主要有四个方向:专业线、管理线、项目线和自主创业。管理线是指转向管理岗位,带一个团队..

商品文章分析了Axure原型的三個(gè)層次:表現(xiàn)層、邏輯層、展示層,今天的這篇文章從這個(gè)層次思路入手,繼續(xù)分享關(guān)于驗(yàn)證碼的原型設(shè)計(jì)。

上次分享一個(gè)本專題的一個(gè)開篇,講訴了Axure原型的三個(gè)層次,即表現(xiàn)層、邏輯層、展示層。并給出了一個(gè)簡(jiǎn)單的例子:音量調(diào)節(jié)。

這次將分享一個(gè)更為常見的組件:驗(yàn)證碼。如下圖

驗(yàn)證碼

先說明一下,在實(shí)際工作沒有必要像這篇文章寫的這樣去做一個(gè)如此高保真的驗(yàn)證碼,是在浪費(fèi)精力。做這些例子呢,主要是鍛煉自己的邏輯能力,以及對(duì)Axure的熟悉程度。當(dāng)然了,做完了可以存進(jìn)自己的組件庫(kù)里,需要用的時(shí)候直接拖動(dòng)就能用。多么酷炫。

話不多述,直接進(jìn)入正題。

分析如下:

表現(xiàn)層

  • 4個(gè)自由角度隨機(jī)字符
  • 輸入框
  • 驗(yàn)證按鈕

邏輯層

if 我點(diǎn)擊驗(yàn)證碼圖片then 圖片上字符發(fā)生隨機(jī)變化,具體變化規(guī)則是:生成4個(gè)人隨機(jī)字符,并旋轉(zhuǎn)隨機(jī)角度,背景也隨機(jī)變化
if 我輸入在輸入框的字符與驗(yàn)證碼上面的圖片一致,則驗(yàn)證通過

關(guān)鍵就在于生成四個(gè)隨機(jī)字符,隨機(jī)旋轉(zhuǎn)角度,隨機(jī)背景。

數(shù)據(jù)層

我們可以很簡(jiǎn)單的假設(shè)字符就來(lái)自于26個(gè)大小寫字母與10個(gè)數(shù)字的集合,即
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789

分析到這里,我們的思路是:

  1. 構(gòu)建一個(gè)隨機(jī)字符集合,然后利用隨機(jī)函數(shù)從集合中隨機(jī)取出四個(gè)數(shù),組成驗(yàn)證碼。
  2. 運(yùn)用Axure旋轉(zhuǎn)事件配合隨機(jī)數(shù),達(dá)到字符旋轉(zhuǎn)隨機(jī)角度的效果。
  3. 至于背景圖,專業(yè)術(shù)語(yǔ)叫噪點(diǎn)圖,在百度上找一張圖,然后利用Dynamic Pannel限制顯示區(qū)域的效果,通過隨機(jī)移動(dòng)來(lái)達(dá)到改變背景的效果。

噪點(diǎn)圖

進(jìn)入實(shí)操

畫框架

拖動(dòng)一個(gè)輸入框、一個(gè)動(dòng)態(tài)面板、一個(gè)按鈕,調(diào)整至合適的大小。

雙擊進(jìn)入動(dòng)態(tài)面板,將噪點(diǎn)圖放到里面去

這樣就實(shí)現(xiàn)了噪點(diǎn)圖的局部顯示:

然后我們?cè)趧?dòng)態(tài)面板的onclick中添加move事件:

函數(shù)是:

[[Math.random().toFixed(2)*-100]]

原理解釋:

Math.random()生成0-1隨機(jī)數(shù),toFixed(2)保留2位小數(shù),乘以-100是因?yàn)锳xure的坐標(biāo)軸的原點(diǎn)是在左上角,則圖片要移動(dòng)則是變成負(fù)數(shù)。這邊即隨機(jī)將噪點(diǎn)圖片移動(dòng)1-100個(gè)點(diǎn)。

驗(yàn)證碼生成

這里直接將邏輯層與數(shù)據(jù)層一起寫了。

可以用設(shè)置變量的形式,但是這個(gè)又涉及到其他知識(shí),故我們這里直接采用一種取巧的方式,把字符集合存儲(chǔ)在標(biāo)簽中。

拖動(dòng)四個(gè)標(biāo)簽在驗(yàn)證碼背景(放到動(dòng)態(tài)面板里面)上,表示4個(gè)隨機(jī)字符。再拖動(dòng)一個(gè)標(biāo)簽放在下面,作為字符串的存儲(chǔ)集合。如圖:

候選字符里面總共有26+26+10=62個(gè)字符

我們從這62個(gè)字符中隨機(jī)選取需要用到以下公式。

[[LVAR1.charAt((Math.random()*62).toFixed(0))]]

LVAR1指向字符集合。charAt()函數(shù)返回字符串中指定位置的字符。Math.random()返回0-1隨機(jī)數(shù),乘以62則變成生成1-62的隨機(jī)數(shù),toFixed(0)函數(shù)將結(jié)果保留0位小數(shù),即取整。

4個(gè)隨機(jī)字符都是同樣的函數(shù)。在動(dòng)態(tài)面板的onclick中添加。

到這一步,已經(jīng)可以做到點(diǎn)擊驗(yàn)證碼隨機(jī)生成4個(gè)字符了。為了逼真一點(diǎn),我們?cè)偌由想S機(jī)旋轉(zhuǎn)函數(shù)。

很簡(jiǎn)單,設(shè)置旋轉(zhuǎn)角度為1-60的隨機(jī)數(shù)即可。公式為

[[Math.random()*60]]

好了,最后把字符集合標(biāo)簽設(shè)為隱藏,最后的效果就出來(lái)了。

預(yù)覽.gif

后續(xù)可以在頁(yè)面onload事件中把動(dòng)態(tài)面板的onclick事件粘貼進(jìn)去,這樣加載時(shí)候就是隨機(jī)字符了。

如果要做驗(yàn)證的話,只要寫一個(gè)函數(shù),拼接4個(gè)隨機(jī)字符,判斷與文本框輸入是否相等即可。這邊不在討論范圍。本文僅演示驗(yàn)證碼高保真驗(yàn)證碼生成。

 

本文由 @躚塵 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理。未經(jīng)許可,禁止轉(zhuǎn)載。

題圖來(lái)自PEXELS,基于CC0協(xié)議

更多精彩內(nèi)容,請(qǐng)關(guān)注人人都是產(chǎn)品經(jīng)理微信公眾號(hào)或下載App
評(píng)論
評(píng)論請(qǐng)登錄
  1. 請(qǐng)問樓主可以分享一下原型嗎?文章里的鏈接已經(jīng)過期了,感謝!

    來(lái)自廣東 回復(fù)
  2. 樓主真厲害 分享下原型可以嗎? 9月22日分享的已經(jīng)過期

    來(lái)自北京 回復(fù)
  3. 樓主好厲害,原型下載下來(lái)研究了下。好復(fù)雜

    來(lái)自上海 回復(fù)
  4. 分享的邏輯,文字樣式也很規(guī)整,向你學(xué)習(xí)

    來(lái)自上海 回復(fù)
  5. 棒,會(huì)用函數(shù)就是好

    來(lái)自上海 回復(fù)
  6. 鏈接:http://pan.baidu.com/s/1pLmLpkn 密碼:5uam

    來(lái)自福建 回復(fù)
  7. 樓主發(fā)一下原型可以嗎?2577638092@qq.com

    來(lái)自四川 回復(fù)
    1. 見樓上

      來(lái)自福建 回復(fù)
  8. 樓主發(fā)一下原型可以嗎?15901476966@163.com

    來(lái)自北京 回復(fù)
    1. 見樓上

      來(lái)自福建 回復(fù)
  9. 很不錯(cuò)呢,加油

    來(lái)自上海 回復(fù)
  10. 說實(shí)話,做了那么多年產(chǎn)品,除非是一些新的效果沒有參考案例的,不然的話這種成熟且大家都知道的方案,口述或者直接給案例參考,比浪費(fèi)時(shí)間畫axure原型會(huì)簡(jiǎn)單得多

    來(lái)自廣東 回復(fù)
    1. 我們還處于炫技層級(jí)~~~~~

      來(lái)自江蘇 回復(fù)
  11. 挺厲害的,就是你一套原型做下來(lái)得一個(gè)月不?

    來(lái)自北京 回復(fù)
    1. 我在第一句話就說了哈,實(shí)際工作別這么干。平時(shí)有空弄弄,放組件庫(kù)。然后想用的時(shí)候拖動(dòng)一下就好了。

      來(lái)自福建 回復(fù)
    2. 哈哈,沒注意看,贊樓主這份精益求精的工匠精神

      來(lái)自北京 回復(fù)
  12. 郵箱1121099535@qq.com 謝謝

    來(lái)自廣東 回復(fù)
    1. 見樓上

      來(lái)自福建 回復(fù)
  13. 能分享一下原型嗎?

    來(lái)自廣東 回復(fù)
专题
17949人已学习17篇文章
随着互联网的不断发展,不少产品开始了适老化改造,帮助老年人更好地融入智能生活。本专题的文章分享了适老化的设计思路。
专题
12382人已学习15篇文章
当业务进入某一阶段之后,用户新增可能会趋向疲软,这个阶段里,运营人员可能会需要召回流失用户。本专题的文章分享了用户召回策略。
专题
31214人已学习16篇文章
在线教育的现状、趋势和未来。
专题
11910人已学习12篇文章
如今随着商业的发展,消费者与品牌建立起了更深的联系,商务活动也开始以消费者为中心,所以消费者的体验以及建议就非常重要。本专题的文章分享了消费者行为学。
专题
13003人已学习12篇文章
要想判断一个行业的趋势,就要做好行业分析。本专题的文章分享了如何撰写行业分析报告。