Axure8.0原型:小白改進版環形進度條
今天在網上看到了幾篇關于環形進度條的Axure教程,由于天性愚鈍,學了一整天才弄懂其原理,但是強迫癥的細胞告訴我網上的幾篇教程不太完美,于是我跳進了產品經理最忌諱的坑——追求完美。
不只是進度條,很多模塊都有很多方法,勤于思考就能用不同的方法做出來,活學活用,共勉。
一、元件準備
如上圖所示:
1、尺寸為202*202圓形1個,并命名為“外環”;
2、尺寸為148*148圓形1個,并命名為“內環”;
3、按鈕1個,命名為“開始”,作為觸發按鈕;
4、尺寸202*202大圓與152*152小圓組合而成的四分之一圓環1個,顏色填充為白色(圖中是為了顯示出來才臨時填充的灰色),組合命名為“白條”,ps:尺寸之所以和元件5不同是為了避免圓心疊加時露出紅色的邊;
5、尺寸為200*200大圓與150*150小圓組合而成的四分之一圓環4個,組合時大圓填充紅色,小圓填充白色,組合分別命名為“紅條1234”。
二、元件擺放位置
1、將“外環”置于最底層;
2、將“紅條1234”分別于“外環”圓心重合放置;
3、將“白條”與“外環”圓心重合放置,此時白條會遮擋住紅條,在元件準備時之所以讓白條尺寸略大于紅條尺寸,就是為了遮擋住紅條的邊緣顏色,實現完全遮擋,不留瑕疵;
4、將“內環”與“外環”圓心重合放置;
5、最后將“開始”按鈕放置自己喜歡的位置。
如下圖所示:
三、添加用例
對“開始”按鈕做“鼠標單擊時”事件:
具體過程:
旋轉“紅條1”to 90度,漢化項是“到達”,順時針,線性,200ms→旋轉“紅條2”to 180度,順時針,線性,400ms→旋轉“紅條3”to 270度,順時針,線性,600ms→旋轉“紅條4”to 180度(注意:這個地方先旋轉180度與紅條2重合),順時針,線性,400ms→等待400ms→將“紅條4”置于頂層→將“內環”置于頂層→旋轉“紅條4”by 180度,漢化項是“經過”,線性,400ms→F5看一下效果吧。
四、難點解釋
1、四個紅條是如何旋轉的?
最初4個紅條是疊加在一起的,開始旋轉時其實4個紅條是同時旋轉的,只是4個紅條的最終位置不一樣,就像跑步,一聲槍響同時起跑,第一個人跑了1/4停下了,第二個人跑了2/4停下了,第三個人跑了3/4停下了,只有第四個人跑完了全程。同理,順時針90度是紅條1停下的位置,180度是紅條2停下的位置,270度是紅條3停下的位置,360度是紅條4停下的位置,但是為什么先讓紅條4旋轉到180度,中間停頓一下呢?下面解釋。
2、為什么先讓紅條4旋轉180度?
聰明的同學肯定已經看出來了!如果讓紅條4直接旋轉到360度,那么它會被那個最初遮擋紅條的白條所遮擋,這樣紅條4旋轉360度就相當于做的無用功。所以,我們需要讓紅條4分兩步旋轉,中間停留一下讓其置于頂層,這樣到最終位置就不會被白條遮擋。
3、為什么最終又讓內環置于頂層?
大家可以試試,不將內環置于頂層有什么影響。PS.其實還是為了追求細節啦,哈哈哈….
4、時間上有什么關系?200ms、400ms、600ms、800ms有什么聯系?
其實這是從物理學上運動的過程考慮的,紅條1234旋轉的路程是一種倍數關系,如果想讓進度條實現均勻遞增,那么時間上也應該保持倍數關系。紅條4的完整運動時間其實是800ms,大家可以試一下調整時間做非勻速遞增的進度條,我沒有試哦。
5、為什么紅條4第一次旋轉用的“to”,第二次旋轉用的“by”?
其實這是個英語問題,到達那里用介詞“to”,經過哪里用介詞“by”。紅條4第一次旋轉時,它的開始位置是0度那里,第二次旋轉時,如果選擇“to”會把第一次旋轉后的180度位置當成新的起點,這個地點相當于一個新的起點,如果還用“to”,就是在新起點的參照上到達一個固定位置。PS:其實本案例里這一步用“to”或“by”結果是一樣的,純屬巧合,但是道理是不一樣的,關于to和by的區別大家一定要弄懂。
五、Bug
進度條達到100%后,反復點擊“開始”按鈕看看有什么效果,我不會告訴你有bug哦….
相關閱讀:
Axure設計思考:Axure 7.0與Axure 8.0做進度條區別
本文由 @小黑狗兒 原創發布于人人都是產品經理。未經許可,禁止轉載。
按你這個教程做了,可以執行,就是現在卡在這個你說的bug上了。我怎么讓他復位呢?我用上了熱區做界限判斷,然后我發現,我真的是在亂用==
你確定錨點是中心 ??