玩轉(zhuǎn)Axure:如何實(shí)現(xiàn)搜索框聯(lián)想詞效果

16 評(píng)論 15354 瀏覽 71 收藏 7 分鐘

我們幾乎每天都會(huì)使用到搜索功能,在使用百度的時(shí)候經(jīng)常能看到在搜索框中你只要輸入部分關(guān)鍵詞,就能看到下邊列出來(lái)的候選詞,這種方法不僅能夠幫助那些無(wú)法準(zhǔn)確定位要搜索什么詞的用戶,還提高了搜索效率和準(zhǔn)確性。

在我們?nèi)粘J褂弥谐怂阉饕嬷獾碾娚?,?nèi)容類產(chǎn)品中也尤為常見(jiàn),接下來(lái)就講講如何在原型中體現(xiàn)該效果。

先看效果:

在開(kāi)始之前,先把思路梳理成流程,便于更好理解實(shí)現(xiàn)原理。

所有步驟主要分為兩大塊

01

在頁(yè)面中拖入一個(gè)“文本框”元件,調(diào)整大小為W:325 H:25,并命名為“搜索框”,然后在<提示文字>這一欄輸入“搜索”用作提示。

注意下這里因?yàn)槲沂褂昧艘呀?jīng)完成的iPhoneX外殼元件,為了能夠美化效果,把文本框的“隱藏邊框”勾選上了,實(shí)際練習(xí)時(shí)可以不用,如需要元件庫(kù)可到我公眾號(hào)后臺(tái)回復(fù)“IOS11元件”獲取。

接下來(lái)在頁(yè)面中拖入一個(gè)“中繼器”放在文本框下方合適的位置,然后雙擊中繼器進(jìn)入下一頁(yè)面,把頁(yè)面內(nèi)的矩形調(diào)整大小為W:325 H:25,并將四周邊框取消,此處取消邊框的作用也是為了美觀。

回到默認(rèn)頁(yè)面,為拖入的中繼器命名為“候選詞”,然后在<Cloumn0>這一列填充自己需要的候選詞。

2

為“搜索框”元件添加第一個(gè)用例,就如我們前邊流程梳理中所說(shuō)的,若搜索框內(nèi)文本改變時(shí),需要先對(duì)文本添加判斷條件,再執(zhí)行動(dòng)作,所以我們?yōu)榈谝粋€(gè)用例添加一個(gè)判斷條件。

如下圖:

添加篩選動(dòng)作于“候選詞”這個(gè)中繼器。

配置篩選函數(shù),先添加一個(gè)局部變量,也就是搜索框中的文字。

先插入一個(gè)中繼器/數(shù)據(jù)集的函數(shù)<Item.Column0>。

再插入一個(gè)字符串函數(shù)<substrate(start,length)>。

最后調(diào)整函數(shù)表達(dá)如下圖所示,然后確定,篩選函數(shù)設(shè)置完畢。

此時(shí)添加顯示候選詞”動(dòng)作,表明符合篩選條件的情況下顯示中繼器內(nèi)容。

然后為“文本改變時(shí)”狀態(tài)添加第二個(gè)用例,設(shè)置當(dāng)判斷條件“<1時(shí)”。

隱藏“候選詞”這個(gè)中繼器。

最后,當(dāng)頁(yè)面載入時(shí),設(shè)置中繼器為“隱藏”狀態(tài)。

完成以上所有步驟,就能展現(xiàn)文中開(kāi)頭所示的效果,最后我們總結(jié)下,從我們給元件狀態(tài)配置的用例可以看出,最基本的思路就是“篩選—呈現(xiàn)”。

因此基于這個(gè)思路,我們需要做的就是提供篩選數(shù)據(jù),而中繼器是一個(gè)很好的數(shù)據(jù)容納工具,然后篩選,符合條件則呈現(xiàn)。不符合條件則隱藏,后續(xù)我也會(huì)寫更多關(guān)于中繼器使用的例子。

這個(gè)實(shí)現(xiàn)效果并不復(fù)雜,至于文中的函數(shù)部分我已經(jīng)做了拆分理解,如果實(shí)在難以理解可以嘗試多去練習(xí)幾次這個(gè)效果,對(duì)于沒(méi)有寫代碼基礎(chǔ)的同學(xué)(我也是)是相對(duì)比較難理解。在多次練習(xí)后,就會(huì)有一定的認(rèn)識(shí),在日常中這一點(diǎn)并不需要做產(chǎn)品的同學(xué)刻意去糾結(jié),重要的是我們能夠理解其中的思路。

也希望大家能夠養(yǎng)成一種習(xí)慣,在進(jìn)行練習(xí)前對(duì)任務(wù)流程進(jìn)行思路梳理,這樣對(duì)理解邏輯更有幫助,有任何問(wèn)題歡迎在文章底部留言討論。

 

作者:杰森,公眾號(hào):十八般產(chǎn)品

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

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

更多精彩內(nèi)容,請(qǐng)關(guān)注人人都是產(chǎn)品經(jīng)理微信公眾號(hào)或下載App
評(píng)論
評(píng)論請(qǐng)登錄
  1. 老師的微信公眾號(hào)多少?

    來(lái)自安徽 回復(fù)
    1. 直接搜索“十八般產(chǎn)品”

      來(lái)自上海 回復(fù)
  2. 您好,我有個(gè)疑問(wèn),看那個(gè)函數(shù)的意思是,我們這里是按文字長(zhǎng)度篩選的,不是按文本字體進(jìn)行匹配的嗎?不知道我有沒(méi)有表達(dá)清楚我的意思,希望能理解??

    回復(fù)
    1. 你理解的沒(méi)錯(cuò),所以有另外一位大佬補(bǔ)充了另外的函數(shù)使用方法,可以把這里的都當(dāng)成思路

      來(lái)自上海 回復(fù)
  3. 中繼器是axure的最高入門了,很少使用到。。。

    回復(fù)
    1. 是的,可以了解

      來(lái)自廣東 回復(fù)
  4. 發(fā)現(xiàn)人人都是產(chǎn)品經(jīng)理網(wǎng)頁(yè)端跟App端中作者回復(fù)別人的評(píng)論是不同步的呀。。。

    來(lái)自廣東 回復(fù)
    1. 好吧,是延遲的問(wèn)題 ??

      來(lái)自廣東 回復(fù)
  5. 用substr(start,length)這個(gè)函數(shù)為中繼器建立篩序有限制,因?yàn)榘咐性O(shè)定star為0,即限定是從首位字符開(kāi)始匹配,如果首位字符不同,后面就不會(huì)被篩選。

    比如用戶要查找周杰倫,同類項(xiàng)中有周杰、周星馳、杰克,用這個(gè)函數(shù)進(jìn)行查詢時(shí),當(dāng)輸入“周”時(shí),下方的中繼器才能顯示模糊查詢的結(jié)果,會(huì)出現(xiàn)周杰倫、周杰、周星馳三個(gè)模糊選項(xiàng)。但是如果只是輸入“杰”字或“倫”,下方就沒(méi)有模糊查詢的結(jié)果。

    建議采用indexOf(‘searchValue’)這個(gè)參數(shù),將篩選函數(shù)寫為[[Item.Column0.indexOf(LVAR1)!=-1]]

    函數(shù)的意思為,在中繼器中查詢文本框中文字出現(xiàn)的位置,也就是說(shuō),凡是能返回?cái)?shù)字的條目,表示都是包含文本框文字的

    當(dāng)查詢不到文本框文字時(shí),返回值為-1(負(fù)1),即不包含查詢的關(guān)鍵字

    LVAR1局部變量為文本框元件文字

    !=-1的意思是即排除不包含查詢的關(guān)鍵字的數(shù)據(jù)

    這樣出現(xiàn)的模糊查詢的結(jié)果是,如果要查詢周杰倫,不論先輸入哪個(gè)字或一共輸入幾個(gè)字,只要包含周、杰、倫,任意一個(gè)字,模糊查詢的選項(xiàng)都會(huì)被列出來(lái)。

    來(lái)自北京 回復(fù)
    1. 漂亮!感謝這位大佬的拓展,有興趣的伙伴可以嘗試練習(xí)下

      來(lái)自廣東 回復(fù)
    2. 漂亮!感謝這位大佬的拓展,有興趣的伙伴可以實(shí)操一下

      回復(fù)
    3. 嗯嗯,我剛才試了一下,效果很好,謝謝分享

      回復(fù)
    4. 大佬666

      來(lái)自廣東 回復(fù)
    5. 謝謝大神分享,另外,改用函數(shù)過(guò)程中indexOf(‘searchValue’),直接在單引號(hào)內(nèi)粘貼了變量名,所以預(yù)覽一直沒(méi)效果,后來(lái)仔細(xì)看了幾次才發(fā)現(xiàn)[[Item.Column0.indexOf(LVAR1)!=-1]]LVAR1不需要單引號(hào),初學(xué)者留個(gè)腳印。

      來(lái)自安徽 回復(fù)