Axure函數系列|使用字符串函數實現模糊搜索效果

2 評論 6348 瀏覽 29 收藏 6 分鐘

繼續本系列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 協議

更多精彩內容,請關注人人都是產品經理微信公眾號或下載App
評論
評論請登錄
  1. 壓縮包密碼是多少也大佬

    來自重慶 回復
    1. chanpindidai_search

      來自湖北 回復