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