Axure教程:實(shí)現(xiàn)進(jìn)度條、進(jìn)度環(huán)和滑動(dòng)條的簡(jiǎn)單方法
作者分享了制作進(jìn)度條、進(jìn)度環(huán)和滑動(dòng)條的簡(jiǎn)單方法,希望能給大家?guī)?lái)一定的收獲。
畫(huà)原型的目的之一是為了給開(kāi)發(fā)人員看功能的實(shí)現(xiàn)效果,同時(shí)也可以打包制作成Demo給相關(guān)人員了解產(chǎn)品的完成形態(tài),是產(chǎn)品人員的必備技能之一。除了畫(huà)原型,產(chǎn)品人員還要做需求分析和文檔編寫(xiě)等工作,所以不能花太多時(shí)間在此環(huán)節(jié)上。
畫(huà)原型所需時(shí)間與實(shí)現(xiàn)方法有關(guān),以提高效率為目的,本文盡可能詳細(xì)的介紹了進(jìn)度條、進(jìn)度環(huán)和滑動(dòng)條三種原型的最簡(jiǎn)單實(shí)現(xiàn)方法,在介紹方法的過(guò)程中與大家分享自定義函數(shù)和常用math函數(shù)的使用以及元件操作的一些小技巧,希望能幫助大家在畫(huà)原型的時(shí)候更加得心應(yīng)手。
一、進(jìn)度條
進(jìn)度條常見(jiàn)于頁(yè)面載入過(guò)程中,用于向用戶展示當(dāng)前的進(jìn)度情況,配合上有趣的動(dòng)畫(huà)效果可減少用戶的等待焦慮。
1. 準(zhǔn)備元件
在畫(huà)板中拖入等寬等高的灰色矩形和藍(lán)色矩形,灰色矩形命名【進(jìn)度槽】,藍(lán)色矩形轉(zhuǎn)換為動(dòng)態(tài)面板后設(shè)置寬度為1,命名【進(jìn)度條】,拖入開(kāi)始按鈕和文本標(biāo)簽,設(shè)置文本標(biāo)簽文本為“0%”,命名【進(jìn)度】。
2. 原理分析
1)實(shí)現(xiàn)原理
把藍(lán)色矩形轉(zhuǎn)換成動(dòng)態(tài)面板【進(jìn)度條】后,藍(lán)色矩形成為【進(jìn)度條】默認(rèn)面板內(nèi)的一個(gè)元件。通過(guò)把【進(jìn)度條】的初始寬度設(shè)置為1,暫時(shí)只顯示一點(diǎn)點(diǎn)的藍(lán)色矩形,使整個(gè)進(jìn)度槽看起來(lái)是空的。隨著【進(jìn)度條】寬度不斷變大,藍(lán)色矩形被顯示出來(lái)的區(qū)域也不斷增多,直至當(dāng)【進(jìn)度條】的寬度等于【進(jìn)度槽】的時(shí)候,藍(lán)色矩形就全部被顯示出來(lái)了,使整個(gè)進(jìn)度槽看起來(lái)被填充完成。期間進(jìn)度條和進(jìn)度是關(guān)聯(lián)進(jìn)行的,根據(jù)【進(jìn)度條】的寬度計(jì)算出【進(jìn)度】的數(shù)值,用于表示當(dāng)前的進(jìn)度情況。
2)邏輯流程
改變【進(jìn)度條】寬度
改變【進(jìn)度條】的寬度是通過(guò)【設(shè)置尺寸】動(dòng)作來(lái)實(shí)現(xiàn)的,Axure支持在用例中設(shè)置改變?cè)某叽纭!具M(jìn)度條】的初始寬度為1,我們要修改設(shè)置它的尺寸為【進(jìn)度槽】的寬度,設(shè)置動(dòng)畫(huà)為“線性”,時(shí)間為整個(gè)進(jìn)度的時(shí)間。
自定義的函數(shù)中,LVAR1.width指局部變量LVAR1的寬度,LVAR1指代【進(jìn)度槽】,故LVAR1.width即為【進(jìn)度槽】的寬度。
設(shè)置【進(jìn)度】
根據(jù)“ 進(jìn)度 = 進(jìn)度條的寬度 / 進(jìn)度槽的寬度 % ”,轉(zhuǎn)換成原型中的函數(shù)為:
[[ math.ceil ( 100 * LVAR1.width / LVAR2.width ) ]] %
math.ceil(x)函數(shù)為向上取整函數(shù),返回大于或等于參數(shù)x,并且與之最接近的整數(shù)。
(tips:文章結(jié)尾還會(huì)與大家分享更多常用的math函數(shù)。)
LVAR1.width是【進(jìn)度條】的寬度,LVAR2.width是【進(jìn)度槽】的寬度。兩者相除后乘以100,再向上取整后得到百分比數(shù)制的整數(shù)數(shù)值部分,再添加“%”號(hào)組成百分比數(shù)制的文本。
3、設(shè)置用例
【開(kāi)始按鈕】鼠標(biāo)點(diǎn)擊時(shí)用例:
- action1:設(shè)置【進(jìn)度條】尺寸;
- action2:隱藏【進(jìn)度】;
- action3:顯示【進(jìn)度】。
【進(jìn)度】顯示時(shí)用例:
- action1:設(shè)置【進(jìn)度】;
- action2:隱藏【進(jìn)度】;
- action3:顯示【進(jìn)度】。
注意,在完成設(shè)置【進(jìn)度】的動(dòng)作后,需要添加一個(gè)“等待0ms”的動(dòng)作讓程序“暫時(shí)等待一下,然后再繼續(xù)”,否則沒(méi)有設(shè)置等待的話會(huì)形成“設(shè)置-隱藏-顯示-設(shè)置-隱藏-顯示-設(shè)置-隱藏……”的死循環(huán),在運(yùn)行原型的時(shí)候會(huì)造成網(wǎng)頁(yè)奔潰(有興趣的讀者可以嘗試一下,網(wǎng)頁(yè)崩潰了可別怪我^_^)。
全部搞定后就可以預(yù)覽原型了,附上原型演示地址:
二、進(jìn)度環(huán)
進(jìn)度環(huán)是進(jìn)度條的一種擴(kuò)展,只是兩者的展現(xiàn)形式不同,前者為環(huán)形,后者為條形。
1、準(zhǔn)備元件
1)半圓環(huán)的制作方法
step1:畫(huà)兩個(gè)半徑不同的同心圓(大圓450半徑藍(lán)色,小圓300半徑灰色),選中兩個(gè)圓后右鍵 –【改變形狀】–【去除】,便可得到圓環(huán)。
step2:畫(huà)一個(gè)矩形,使它的一邊與圓環(huán)的直徑重合,選中兩者后右鍵 –【改變形狀】–【去除】,得到半圓環(huán),將半圓環(huán)右鍵 –【改變形狀】–【水平翻轉(zhuǎn)】便可得到另一半半圓環(huán)。
2)制作元件
按照上面的方法在畫(huà)板中畫(huà)四個(gè)半圓環(huán)、拖入開(kāi)始按鈕和文本標(biāo)簽,設(shè)置文本標(biāo)簽文本為“0%”,命名【進(jìn)度】。
把各個(gè)元件組合排列成下圖,其中四個(gè)半圓環(huán)自上往下的排列層級(jí)依次為:【右槽】、【右環(huán)】、【左槽】、【左環(huán)】
2、原理分析
1)實(shí)現(xiàn)原理
初始時(shí)四個(gè)半圓環(huán)的排列位置從上往下依次為【右槽】、【右環(huán)】、【左槽】、【左環(huán)】,由于右槽和左槽分別蓋住了右環(huán)和左環(huán),所以在視圖上我們只能看到右槽和左槽,也就是空的環(huán)形槽。動(dòng)作開(kāi)始后,右環(huán)旋轉(zhuǎn)至左側(cè)后蓋住了左槽,然后左環(huán)上升到頂層(于右槽之上),接著頂層的左環(huán)旋轉(zhuǎn)至右側(cè)后蓋住了右槽,所以在視圖上只能看到右環(huán)和左環(huán),也就是填充后的環(huán)形。整個(gè)過(guò)程進(jìn)度環(huán)和進(jìn)度是關(guān)聯(lián)進(jìn)行的,根據(jù)進(jìn)度環(huán)旋轉(zhuǎn)過(guò)的弧度計(jì)算出進(jìn)度,用于表示當(dāng)前的進(jìn)度情況。
2)邏輯流程
進(jìn)度環(huán)的邏輯方法跟進(jìn)度條相似,區(qū)別是進(jìn)度的計(jì)算公式不同。
順時(shí)針旋轉(zhuǎn)半圈【右環(huán)】
旋轉(zhuǎn)【右環(huán)】是通過(guò)【旋轉(zhuǎn)】動(dòng)作來(lái)實(shí)現(xiàn)的,Axure 8支持在用例中對(duì)元件進(jìn)行旋轉(zhuǎn)其位置的操作。設(shè)置旋轉(zhuǎn)位置為相對(duì)位置,角度為180,順時(shí)針?lè)较?,錨點(diǎn)為左側(cè)(沿著左側(cè)旋轉(zhuǎn)),旋轉(zhuǎn)動(dòng)畫(huà)設(shè)置為線性,設(shè)置好旋轉(zhuǎn)時(shí)間。
【左環(huán)】的旋轉(zhuǎn)動(dòng)作設(shè)置與【右環(huán)】相似,把錨點(diǎn)改為右側(cè)(沿右側(cè)旋轉(zhuǎn))即可。
設(shè)置【進(jìn)度】
根據(jù)“ 進(jìn)度 = 進(jìn)度環(huán)旋轉(zhuǎn)過(guò)的弧度 / 360 % ”,轉(zhuǎn)換成原型中的函數(shù)為:
[[ math.ceil ( 100 * ( LVAR1.rotation + LVAR2.rotation ) ?/ ?360 ) ]] %
LVAR1.rotation是【右環(huán)】旋轉(zhuǎn)過(guò)的弧度,LVAR2.rotation是【左環(huán)】旋轉(zhuǎn)過(guò)的弧度。兩者相加后為整個(gè)進(jìn)度環(huán)旋轉(zhuǎn)過(guò)的弧度,除以360,然后乘以100再向上取整后得到百分比數(shù)制的整數(shù)數(shù)值部分,再添加“%”號(hào)組成百分比數(shù)制的文本。
3、設(shè)置用例
【開(kāi)始按鈕】鼠標(biāo)點(diǎn)擊時(shí)用例:
- action1:【右環(huán)】順時(shí)針旋轉(zhuǎn)半圓;
- action2:【左環(huán)】置于頂層;
- action3:【左環(huán)】順時(shí)針旋轉(zhuǎn)半圓。
用例中執(zhí)行【左環(huán)】置于頂層動(dòng)作之前設(shè)置的等待時(shí)間與我們?cè)O(shè)置的【右環(huán)】旋轉(zhuǎn)所需時(shí)間相同,這么做是為了讓【右環(huán)】旋轉(zhuǎn)結(jié)束后才置【左環(huán)】于頂層。否則不添加等待時(shí)間的話在原型的演示過(guò)程中,【右環(huán)】還在旋轉(zhuǎn)的時(shí)候就被【左環(huán)】置頂后遮蓋住了,看不到進(jìn)度環(huán)的旋轉(zhuǎn)動(dòng)畫(huà)。
【進(jìn)度】顯示時(shí)用例:
- action1:設(shè)置【進(jìn)度】;
- action2:隱藏【進(jìn)度】;
- action3:顯示【進(jìn)度】。
注意在完成設(shè)置【進(jìn)度】的動(dòng)作后,需要添加一個(gè)“等待0ms”的動(dòng)作,否則運(yùn)行原型時(shí)會(huì)陷入死循環(huán)而造成網(wǎng)頁(yè)奔潰。
全部搞定后就可以預(yù)覽原型了,附上原型演示地址:簡(jiǎn)易進(jìn)度環(huán)原型演示
三、滑動(dòng)條
滑動(dòng)條常見(jiàn)于數(shù)值選擇器(調(diào)節(jié)音量、修改數(shù)值等),也用于滑動(dòng)解鎖和滑動(dòng)登錄。
1、準(zhǔn)備元件
1)初始化元件
寬400、高20的灰色矩形【滑動(dòng)槽】,跟滑動(dòng)槽等寬等高的藍(lán)色矩形【滑動(dòng)條矩形】,寬15、高30的紅色矩形【滑動(dòng)塊】置于【滑動(dòng)條矩形】右側(cè),拖入文本標(biāo)簽,設(shè)置文本標(biāo)簽文本為“0”,命名【滑動(dòng)數(shù)】。
注:【滑動(dòng)塊】的寬不應(yīng)設(shè)置太大、高略大于【滑動(dòng)條矩形】即可。
2)設(shè)置元件
選中【滑動(dòng)條矩形】和【滑動(dòng)塊】將它們一起轉(zhuǎn)換為動(dòng)態(tài)面板【滑動(dòng)條】,將【滑動(dòng)槽】轉(zhuǎn)換為動(dòng)態(tài)面板,設(shè)置寬為415(【滑動(dòng)條】的寬)、高為40(大于【滑動(dòng)塊】的高),將【滑動(dòng)條】拖入【滑動(dòng)槽】的動(dòng)態(tài)面板中,拖放至【滑動(dòng)槽】左側(cè)直至只露出紅色的【滑動(dòng)塊】部分。
所有元件設(shè)置完成后,在首頁(yè)中視圖如下
2、原理分析
隨著我們?cè)谠椭胁粩嗤蟿?dòng)【滑動(dòng)塊】,【滑動(dòng)條】在【滑動(dòng)槽】中的位置是不斷改變的。在整個(gè)過(guò)程中,滑動(dòng)條和滑動(dòng)數(shù)進(jìn)行關(guān)聯(lián)操作,根據(jù)進(jìn)度條矩形已經(jīng)顯示的寬度計(jì)算出滑動(dòng)數(shù)。
移動(dòng)【滑動(dòng)條】
移動(dòng)方式設(shè)置成“水平拖動(dòng)”,必須添加界限,否則原型會(huì)無(wú)限制拖動(dòng)。設(shè)置左側(cè)邊界的X軸坐標(biāo)大于等于-400(-【滑動(dòng)條矩形】的寬度)、右側(cè)邊界的X軸坐標(biāo)小于等于415(【滑動(dòng)條】的寬度)
設(shè)置【滑動(dòng)數(shù)】
根據(jù)“ 滑動(dòng)數(shù) = ( 滑動(dòng)槽的寬度 – 滑動(dòng)條矩形已經(jīng)顯示的寬度 ) / ?滑動(dòng)槽的寬度 ”,轉(zhuǎn)換成原型中的函數(shù)為:
[[ ?math.ceil ( 100 * ( LVAR2.width – math.abs (LVAR1.x ) ) / LVAR2.width ) ?]]
math.abs(x)函數(shù)為絕對(duì)值函數(shù),返回參數(shù)x的絕對(duì)值。
LVAR2.width是【滑動(dòng)框】的寬度,LVAR1.x是【滑動(dòng)條】的x軸坐標(biāo)數(shù)值,它的絕對(duì)值在原型中即是【滑動(dòng)條矩形】已經(jīng)顯示的寬度。自定義函數(shù)中的“100”是我們所要設(shè)計(jì)的整個(gè)滑動(dòng)條的最大數(shù)值。
3、用例設(shè)置
【滑動(dòng)條】拖動(dòng)時(shí)用例:
- action1:移動(dòng)【滑動(dòng)條】;
- action2:設(shè)置【滑動(dòng)數(shù)】。
全部搞定后就可以預(yù)覽原型了,附上原型演示地址:簡(jiǎn)易滑動(dòng)條原型演示
分享幾個(gè)常用的math函數(shù):
- math.abs(x):絕對(duì)值函數(shù),返回參數(shù)x的絕對(duì)值。math.abs(-2)=2。
- math.ceil(x):向上取整函數(shù),返回大于或等于參數(shù)x,并且與之最接近的整數(shù)。math.ceil(1.2)=2;math.floor(x):向下取整函數(shù),返回小于或等于參數(shù)x,并且與之最接近的整數(shù)。math.floor(1.2)=1。
- math.random():隨機(jī)數(shù)函數(shù),返回介于0到1之間的隨機(jī)數(shù)。
- math.max(x,y):最大值函數(shù),返回參數(shù)x和y中最大的值。math.max(1,2)=2;math.min(x,y):最小值函數(shù),返回參數(shù)x和y中最小的值。math.min(1,2)=1。
- math.pow(x,y):冪運(yùn)算函數(shù),返回參數(shù)x的y次方的值。math.pow(2,3)=8;math.sqrt(x):平方根函數(shù),返回參數(shù)x的正數(shù)平方根。math.sqrt(4)=2。
寫(xiě)在后面
也許有讀者會(huì)問(wèn),有沒(méi)有更簡(jiǎn)單的方法實(shí)現(xiàn)上述的原型呢?答案是肯定有的,同時(shí)也很歡迎讀者們與我討論交流更簡(jiǎn)單的方法。我們做原型的目的是為了表達(dá)功能需求和表現(xiàn)產(chǎn)品形態(tài),采用簡(jiǎn)單的方法只是為了盡可能提高畫(huà)原型的效率。希望讀者們能在工作或者學(xué)習(xí)中養(yǎng)成自己的原型風(fēng)格,只要是我們覺(jué)得最得心應(yīng)手的方法,就是最簡(jiǎn)單的方法。
本文由 @Jenskee 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理。未經(jīng)許可,禁止轉(zhuǎn)載
您好,我在按教程操作條形進(jìn)度條的時(shí)候 進(jìn)度條有變化,但是百分比一直是0…不知道為什么…求指教
為啥進(jìn)度條要多此一舉加個(gè)動(dòng)態(tài)面板呢
為什么我做的進(jìn)度條,一滑動(dòng)?;瑒?dòng)數(shù)就會(huì)變成亂碼?
函數(shù)公式?jīng)]設(shè)置對(duì)
我是一直就顯示該公式
一直顯示公式的話,可能是沒(méi)有用“[[]]”中括號(hào)引起來(lái)
。。。。
原型圖:我就一個(gè)占位符,寫(xiě)“進(jìn)度條”
需求文檔:寫(xiě)一個(gè)進(jìn)度公式。。。
這樣太直接明了了 ??
大神求源文件1209893853@qq.com。。。。。。。做著做不出來(lái),不知道是哪個(gè)環(huán)節(jié)出了問(wèn)題 ??
在哪一步驟出現(xiàn)問(wèn)題了呢
疑問(wèn):進(jìn)度條案例中。復(fù)位的用例時(shí)間是不是沒(méi)有講?然后是不是要把開(kāi)始按鈕轉(zhuǎn)化為動(dòng)態(tài)面板設(shè)置復(fù)位事件???
嗯嗯,復(fù)位的用例再本文是沒(méi)有講的,有興趣的話可以私聊我互相學(xué)習(xí)一下,另外開(kāi)始按鈕可以不用設(shè)置成動(dòng)態(tài)面板,直接修改元件的文字再加上狀態(tài)判斷就行了,能少用動(dòng)態(tài)面板就少用吧,否則修改起原型來(lái)很要命
求教:暫停進(jìn)度條的實(shí)現(xiàn)方法?
你是問(wèn)進(jìn)度條跑完自動(dòng)暫停嗎,還是手動(dòng)隨時(shí)暫停?
手動(dòng)隨時(shí)暫停再手動(dòng)開(kāi)啟。那個(gè),我自己研究出來(lái)了,用動(dòng)態(tài)面板做循環(huán)走進(jìn)度,再暫停循環(huán)。還是謝謝你!
我想問(wèn)一下,為什么我進(jìn)度環(huán)和進(jìn)度環(huán)槽大小一樣,可是當(dāng)我進(jìn)度環(huán)旋轉(zhuǎn)出來(lái)時(shí),卻比進(jìn)度環(huán)槽要小
項(xiàng)目設(shè)置里面,將元件的邊緣方式設(shè)置為重疊
想問(wèn)一下進(jìn)度條的用例是放在哪一項(xiàng)下面?我按照上面的一步步下來(lái),一點(diǎn)擊開(kāi)始進(jìn)度從“0%”到“1%”顯示就停住了
估計(jì)應(yīng)該是你的【進(jìn)度條】寬度設(shè)置問(wèn)題
是按照上面的[[LVAR1.width]]來(lái)設(shè)置的,里面的變量也是LVAR1=元件 進(jìn)度槽。這個(gè)用例有沒(méi)說(shuō)要放在哪個(gè)下面?我放在“鼠標(biāo)單擊時(shí)”和“狀態(tài)改變時(shí)”都是一樣在“1%”停止了
你設(shè)置變量LAR1了嗎
函數(shù)里面LVAR1=元件 進(jìn)度槽這個(gè)嗎?設(shè)置了
你微信多少,我加你吧,然后你把rp文件發(fā)給我,我?guī)湍憧纯?/p>
445731237~謝謝
滑動(dòng)數(shù) 為什么是滑動(dòng)槽的寬度-露出來(lái)的矩形寬度? 而不直接是露出來(lái)的矩形寬度? 滑動(dòng)數(shù)是已經(jīng)滑動(dòng)了多少的意思嗎?這點(diǎn)理不清楚了 ??
是我在文章里表達(dá)錯(cuò)了,正確的表達(dá)是:滑動(dòng)槽的寬度-滑動(dòng)條的x坐標(biāo)的絕對(duì)值。在動(dòng)態(tài)面板中,滑動(dòng)條的x坐標(biāo)的變化值為【-500至0】,他的絕對(duì)值變化為500至0
明白啦,多謝這么快的回復(fù)~!!
嗯嗯,好高興能幫你解答
改變進(jìn)度文字,為什么需要顯示和隱藏操作,直接set text不好用是為什么? ??
set text只是一個(gè)動(dòng)作,要通過(guò)【隱藏】-【顯示】去觸發(fā)循環(huán)動(dòng)作。或者也可以用文本框元件代替文本標(biāo)簽元件,文本框元件的set text屬性可以自帶觸發(fā)循環(huán)
我這進(jìn)度條不動(dòng),只有數(shù)字走是怎么回事 看了5遍了
有把【進(jìn)度條】設(shè)置成動(dòng)態(tài)面板嗎
弄好了 一個(gè)小細(xì)節(jié)的問(wèn)題
??
這個(gè)函數(shù)是這么運(yùn)用的,雖說(shuō)按照步驟可以做出來(lái),想學(xué)習(xí)一下函數(shù)這東西,您有什么函數(shù)使用教程嗎?
函數(shù)這種東西不需要刻意去記住的,用多了自然就會(huì)掌握了。至于使用教程,其實(shí)我也是自己摸索學(xué)習(xí)的,所以也就無(wú)法提供給你教程方案。也許后續(xù)我會(huì)分享更多案例給大家,希望能幫助你學(xué)習(xí)。
沒(méi)去大公司當(dāng)過(guò)產(chǎn)品經(jīng)理,想問(wèn)一下正規(guī)大公司的原型要這么逼真么。。
承讓承讓,小的也沒(méi)去過(guò)大公司當(dāng)產(chǎn)品經(jīng)理,只是想通過(guò)分享原型的實(shí)現(xiàn)方法學(xué)習(xí)更多的Axure技巧,不僅限于實(shí)現(xiàn)單個(gè)原型。好像不同公司對(duì)原型有不一樣的要求,有些只要求中保真原型就可以了
有沒(méi)有原型文件參考下
照著我的教程一步步來(lái)不可以實(shí)現(xiàn)嗎
為什么我做的到4%后就停止了
進(jìn)度跑到4%就停止了嗎?進(jìn)度條還會(huì)走動(dòng)么?估計(jì)是你進(jìn)度自我循環(huán)的過(guò)程中設(shè)置錯(cuò)了
進(jìn)度條不動(dòng)了,進(jìn)度也停止了,我也找不出我錯(cuò)哪里了
我加你微信吧,然后你把rp文檔發(fā)給我看一下,你微信號(hào)多少呢
eliane-2012
由于篇幅有限,更多分享內(nèi)容請(qǐng)閱讀原文 ??
原文鏈接:http://www.jianshu.com/p/dabf3665aa59