Axure函數系列|使用字符串函數實現模糊搜索效果
繼續本系列Axure函數教程,上一篇文章主要給大家分享了Slice、Concat、Math.floor等字符串處理函數的使用,本篇文章將結合中繼器給大家講解IndexOf函數的使用。
案例效果,見下圖:
描述:在搜索框輸入關鍵詞時,顯示關鍵詞列表,列表中的關鍵詞文字中包含輸入的關鍵詞文字;鼠標單擊列表中的關鍵詞時,將該關鍵詞填入搜索框;鼠標單擊頁面其他區域時,隱藏關鍵詞列表。
元件準備:
- 文本框(用于輸入搜索內容):KeywordInput
- 組合(用于統一顯示隱藏關鍵詞列表中的元件):KeywordGroup
- 中繼器(用于顯示關鍵詞列表項):keywordList
- 文本標簽(用于顯示關鍵詞列表項):Keyword
思路分析:
- 創建關鍵詞列表搜索框;
- 搜索框中輸入文字時,顯示關鍵詞列表;
- 鼠標進入關鍵詞列表時,列表項呈現粉紅色文字和灰色背景;
- 鼠標單擊列表項時,將被單擊列表項的文字寫入搜索框中;
- 鼠標單擊頁面其他位置時,隱藏關鍵詞列表。
操作步驟:
(1)完成基礎數據設置,即完成中繼器中的關鍵詞列表中數據集、交互以及樣式的設置,
設置內容見下圖:
(2)為文本框“KeywordInput”的【文字改變時】事件添加“case1”,設置條件判斷【元件文字】“當前元件”(This)【!=】【值】“”(空值);添加滿足條件時的動作為【顯示】組合“KeywordGroup”。
條件判斷設置見下圖:
Case動作設置見下圖:
(3)繼續下一步,添加動作【添加篩選】到中繼器“KeywordList”,設置篩選{名稱}為“Search”,{條件}為“[[Item.Keyword.indexof(text)>=0]]”;條件公式的含義為:文本框中的文字在“item.Keyword”中首次出現的位置大于等于0,因為字符串中字符位置從0開始計算,所以當位置大于等于0時,表示文本框的文字包含在“Item.Keyword”中。
Case動作設置見下圖:
其中使用到的函數說明:
IndexOf(參數1,參數2):查詢參數1字符串在文本對象中首次出現的位置;參數1為查詢內容的字符串;參數2位查詢的起始位置,該參數可省略,省略是表示從左側第一個位置開始查詢;字符位置從0開始計算,即第一個字符位置為0;如果文本對象未 包含參數1字符串,獲取到的數值為-1;使用方法“[[文本對象.indexOf(參數1,參數 2)]]”。
(4)在元件屬性中,為文本標簽“Keyword”設置【鼠標懸?!繒r的交互樣式為橙色文字與灰色背景。
(5)為文件“Keyword”的【鼠標點擊時】事件添加“case1”,設置動作為【設置文本】于文本框“KeywordInput”為【元件文字】“當前元件”(This)。
Case動作設置見下圖:
(6)單擊檢視面板右上角的頁面圖標,或者在概要中單擊頁面名稱,為頁面的【頁面鼠標單擊時】事件添加“case1”,設置動作為【隱藏】組合“keywordGroup”。這個動作同樣要添加在元件“KeyWordGroup”,這個動作同樣要添加在元件“Keyword”【鼠標單擊時】事件的“case1”中。
事件交互設置見下圖:
好了,到此這篇關于Axure字符串函數的應用案例分享基本介紹完了,最后提供的是上述案例的原型模板的源文件下載,大家可以結合本文中的相關介紹進行理解消化。
https://pan.baidu.com/s/1rQOZML4MaDpJac3ZnMYWYw
本文由 @?Bruce2047 原創發布于人人都是產品經理。未經許可,禁止轉載
題圖來自 Pixabay,基于 CC0 協議
壓縮包密碼是多少也大佬
chanpindidai_search