Framework7-検索バー

説明

Framework 7では、searchbarクラスを使用して要素を検索できます。

検索バーのパラメータ

S.No パラメータと説明 タイプ デフォルト
1

searchList

リストのCSSセレクターまたはHTML要素を検索します。

文字列またはHTML要素 -
2

searchIn

CSSセレクターのリストビュー要素を検索できます。また、.item-title.item-textクラスを渡すことで要素を検索できます。

ストリング '.item-title'
3

found

「found」要素を使用してCSSセレクターまたはHTML要素を検索します。さらに、要素が指定されていない場合は、.searchbar-found要素を使用します。

文字列またはHTML要素 -
4

notfound

「not-found」要素を使用してCSSセレクターまたはHTML要素を検索します。さらに、要素が指定されていない場合は、.searchbar-not-found要素を使用します。

文字列またはHTML要素 -
5

overlay

searchbaroverlay」要素を使用してCSSセレクターまたはHTML要素を検索し、要素が指定されていない場合は.searchbar-overlay要素を使用します。

文字列またはHTML要素 -
6

ignore

検索バーを使用して、アイテムのCSSセレクターを無視できます。

ストリング '.searchbar-無視'
7

customSearch

有効にすると、検索バーはsearchListで指定されたリストブロックを検索せず、カスタム検索機能を使用できるようになります。

ブール値 false
8

removeDiacritics

要素を検索するときは、このパラメーターを有効にして発音区別符号を削除します。

ブール値 false
9

hideDividers

アイテムがない場合、このパラメーターはアイテムの仕切りとグループタイトルを非表示にします。

ブール値 true
10

hideGroups

リストビューグループにアイテムが見つからない場合、このパラメーターはグループを非表示にします。

ブール値 true

検索バーのコールバック

S.No コールバックと説明 タイプ デフォルト
1

onSearch

このメソッドは、検索中にコールバック関数を起動します。

関数) -
2

onEnable

このメソッドは、検索バーがアクティブになるとコールバック関数を起動します。

関数) -
3

onDisable

このメソッドは、検索バーが非アクティブになったときにコールバック関数を起動します。

関数) -
4

onClear

このメソッドは、「clear」要素をクリックするとコールバック関数を起動します。

関数) -

検索バーのプロパティ

S.No プロパティと説明
1

mySearchbar.params

オブジェクトとともに渡される初期化されたパラメータを表します。

2

mySearchbar.query

現在のクエリを検索します。

3

mySearchbar.searchList

検索リストブロックを定義します。

4

mySearchbar.container

HTML要素を使用して検索バーコンテナを定義します。

5

mySearchbar.input

HTML要素を使用して検索バーの入力を定義します。

6

mySearchbar.active

検索バーを有効にするか無効にするかを定義します。

検索バーの方法

S.No 方法と説明
1

mySearchbar.search(query);

このメソッドは、渡されたクエリを検索します。

2

mySearchbar.enable();

検索バーを有効にします。

3

mySearchbar.disable();

検索バーを無効にします。

4

mySearchbar.clear();

クエリと検索結果をクリアできます。

5

mySearchbar.destroy();

検索バーのインスタンスを破棄します。

検索バーのJavaScriptイベント

S.No イベントと説明 目標
1

search

要素の検索中にこのイベントを発生させることができます。

<div class = "list-block">
2

clearSearch

このイベントは、ユーザーがclearSearch要素をクリックしたときに発生します。

<div class = "list-block">
3

enableSearch

検索バーが有効になると、このイベントが発生します。

<div class = "list-block">
4

disableSearch

検索バーが無効になり、ユーザーがキャンセルボタンまたは「検索バーオーバーレイ」要素をクリックすると、このイベントが発生します。

<div class = "list-block">

次の例は、Framework7のスクロールでの検索バーの使用を示しています。

<!DOCTYPE html>
<html>

   <head>
      <meta name = "viewport" content = "width = device-width, initial-scale = 1, 
         maximum-scale = 1, minimum-scale = 1, user-scalable = no, minimal-ui" />
      <meta name = "apple-mobile-web-app-capable" content = "yes" />
      <meta name = "apple-mobile-web-app-status-bar-style" content = "black" />
      <title>Search Bar Layout</title>
      <link rel = "stylesheet" 
         href = "https://cdnjs.cloudflare.com/ajax/libs/framework7/1.4.2/css/framework7.ios.min.css" />
      <link rel = "stylesheet" 
         href = "https://cdnjs.cloudflare.com/ajax/libs/framework7/1.4.2/css/framework7.ios.colors.min.css" />
   </head>

   <body>
      <div class = "views">
         <div class = "view view-main">
            <div class = "pages navbar-fixed">
               <div data-page = "home" class = "page">
               
                  <div class = "navbar">
                     <div class = "navbar-inner">
                        <div class = "center sliding">Search Bar Layout</div>
                     </div>
                  </div>
                  
                  <form data-search-list = ".list-block-search" data-search-in = ".item-title" 
                     class = "searchbar searchbar-init">
                     <div class = "searchbar-input">
                        <input type = "search" placeholder = "Search"><a href = "#" 
                           class = "searchbar-clear"></a>
                     </div>
                     <a href = "#" class = "searchbar-cancel">Cancel</a>
                  </form>
                  
                  <div class = "searchbar-overlay"></div>
                  
                  <div class = "page-content">
                     <div class = "content-block searchbar-not-found">
                        <div class = "content-block-inner">No element found...</div>
                     </div>
                     
                     <div class = "list-block list-block-search searchbar-found">
                        <ul>
                           <li class = "item-content">
                              <div class = "item-inner">
                                 <div class = "item-title">India</div>
                              </div>
                           </li>
                           
                           <li class = "item-content">
                              <div class = "item-inner">
                                 <div class = "item-title">Argentina</div>
                              </div>
                           </li>
                           
                           <li class = "item-content">
                              <div class = "item-inner">
                                 <div class = "item-title">Belgium</div>
                              </div>
                           </li>
                           
                           <li class = "item-content">
                              <div class = "item-inner">
                                 <div class = "item-title">Brazil</div>
                              </div>
                           </li>
                           
                           <li class = "item-content">
                              <div class = "item-inner">
                                 <div class = "item-title">Canada</div>
                              </div>
                           </li>
                           
                           <li class = "item-content">
                              <div class = "item-inner">
                                 <div class = "item-title">Colombia</div>
                              </div>
                           </li>
                           
                           <li class = "item-content">
                              <div class = "item-inner">
                                 <div class = "item-title">Denmark</div>
                              </div>
                           </li>
                           
                           <li class = "item-content">
                              <div class = "item-inner">
                                 <div class = "item-title">Ecuador</div>
                              </div>
                           </li>
                           
                           <li class = "item-content">
                              <div class = "item-inner">
                                 <div class = "item-title">France</div>
                              </div>
                           </li>
                           
                           <li class = "item-content">
                              <div class = "item-inner">
                                 <div class = "item-title">Germany</div>
                              </div>
                           </li>
                           
                           <li class = "item-content">
                              <div class = "item-inner">
                                 <div class = "item-title">Greece</div>
                              </div>
                           </li>
                           
                           <li class = "item-content">
                              <div class = "item-inner">
                                 <div class = "item-title">Haiti</div>
                              </div>
                           </li>
                           
                           <li class = "item-content">
                              <div class = "item-inner">
                                 <div class = "item-title">Hong Kong</div>
                              </div>
                           </li>
                           
                           <li class = "item-content">
                              <div class = "item-inner">
                                 <div class = "item-title">Iceland</div>
                              </div>
                           </li>
                           
                           <li class = "item-content">
                              <div class = "item-inner">
                                 <div class = "item-title">Ireland</div>
                              </div>
                           </li>
                           
                           <li class = "item-content">
                              <div class = "item-inner">
                                 <div class = "item-title">Jamaica</div>
                              </div>
                           </li>
                           
                           <li class = "item-content">
                              <div class = "item-inner">
                                 <div class = "item-title">Japan</div>
                              </div>
                           </li>
                           
                           <li class = "item-content">
                              <div class = "item-inner">
                                 <div class = "item-title">Kenya</div>
                              </div>
                           </li>
                           
                           <li class = "item-content">
                              <div class = "item-inner">
                                 <div class = "item-title">Kuwait</div>
                              </div>
                           </li>
                           
                           <li class = "item-content">
                              <div class = "item-inner">
                                 <div class = "item-title">Libya</div>
                              </div>
                           </li>
                           
                           <li class = "item-content">
                              <div class = "item-inner">
                                 <div class = "item-title">Liberia</div>
                              </div>
                           </li>
                           
                           <li class = "item-content">
                              <div class = "item-inner">
                                 <div class = "item-title">Malaysia</div>
                              </div>
                           </li>
                           
                           <li class = "item-content">
                              <div class = "item-inner">
                                 <div class = "item-title">Mauritius</div>
                              </div>
                           </li>
                           
                           <li class = "item-content">
                              <div class = "item-inner">
                                 <div class = "item-title">Mexico</div>
                              </div>
                           </li>
                           
                           <li class = "item-content">
                              <div class = "item-inner">
                                 <div class = "item-title">Namibia</div>
                              </div>
                           </li>
                           
                           <li class = "item-content">
                              <div class = "item-inner">
                                 <div class = "item-title">New Zealand</div>
                              </div>
                           </li>
                           
                           <li class = "item-content">
                              <div class = "item-inner">
                                 <div class = "item-title">Oman</div>
                              </div>
                           </li>
                           
                           <li class = "item-content">
                              <div class = "item-inner">
                                 <div class = "item-title">Paraguay</div>
                              </div>
                           </li>
                           
                           <li class = "item-content">
                              <div class = "item-inner">
                                 <div class = "item-title">Philippines</div>
                              </div>
                           </li>
                           
                           <li class = "item-content">
                              <div class = "item-inner">
                                 <div class = "item-title">Russia</div>
                              </div>
                           </li>
                           
                           <li class = "item-content">
                              <div class = "item-inner">
                                 <div class = "item-title">Singapore</div>
                              </div>
                           </li>
                           
                           <li class = "item-content">
                              <div class = "item-inner">
                                 <div class = "item-title">South Africa</div>
                              </div>
                           </li>
                           
                           <li class = "item-content">
                              <div class = "item-inner">
                                 <div class = "item-title">Thailand</div>
                              </div>
                           </li>
                           
                           <li class = "item-content">
                              <div class = "item-inner">
                                 <div class = "item-title">United Kingdom</div>
                              </div>
                           </li>
                           
                           <li class = "item-content">
                              <div class = "item-inner">
                                 <div class = "item-title">Vatican City</div>
                              </div>
                           </li>
                           
                           <li class = "item-content">
                              <div class = "item-inner">
                                 <div class = "item-title">Zimbabwe</div>
                              </div>
                           </li>
                        </ul>
                     </div>
                     
                  </div>
               </div>
            </div>
         </div>
      </div>
      
      <script type = "text/javascript" 
         src = "https://cdnjs.cloudflare.com/ajax/libs/framework7/1.4.2/js/framework7.min.js"></script>
      
      <script>
         var myApp = new Framework7();
         var mainView = myApp.addView('.view-main');
      </script>
   </body>

</html>

出力

上記のコードがどのように機能するかを確認するために、次の手順を実行してみましょう-

  • 上記のHTMLコードを保存します search_bar.html サーバーのルートフォルダにあるファイル。

  • このHTMLファイルをhttp://localhost/search_bar.htmlとして開くと、出力が次のように表示されます。

  • リストに含まれる要素が検索バーに入力されると、リストからその特定の要素が表示されます。

  • リストに含まれている要素以外の要素を入力すると、要素が見つかりませんと表示されます。